skip to Main Content
import json

response_message = {
    'id': 'chatcmpl-9Iof6Uwf74o9N6uKsyxIVMFFIDJYC',
    'object': 'chat.completion',
    'created': 1714271676,
    'model': 'gpt-3.5-turbo-0125',
    'choices': [
        {
            'index': 0,
            'message': {
                'role': 'assistant',
                'content': 'sfsdfs {n "plant": {n "light blocker": 1,n "give water": 0,n "spray water": 0,n "conditions": {n "humidity (%)": 56.78,n "temperature (C)": 23.45,n "light": 1,n "soil moisture": 654n }n}netc text  n}'
            },
            'logprobs': None,
            'finish_reason': 'stop'
        }
    ],
    'usage': {
        'prompt_tokens': 225,
        'completion_tokens': 78,
        'total_tokens': 303
    },
    'system_fingerprint': 'fp_3b956da36b'
}

# Extracting the content from the message
content = response_message['choices'][0]['message']['content']

# Remove the "etc text" from the content
cleaned_content = content.split("{n" ,1)[1]
cleaned_content = cleaned_content.split('}n',1)[0] + '}'
cleaned_content = '{n' + cleaned_content

content_json = json.loads(cleaned_content)

print(content_json)

just want a code without error
json.loads() giving error can someone explain
i searched on google but there telling to add r""
but how can solve this error?

3

Answers


  1. You can add print(cleaned_content) statement right before json.loads(cleaned_content). You’ll notice that it’s missing two closing braces "}", which is why the JSON parsing results in an error.

    Login or Signup to reply.
  2. There is invalid garbage before the first curly brace and between the 2nd and last curly brace. Use the following to generate corrected cleaned_content from content, but I suspect this isn’t the actual response:

    # Remove the invalid garbage before first { and between 2nd and last }
    first = content.index('{')
    last = content.rindex('}')
    last2 = content.rindex('}', 0, last)
    cleaned_content = content[first:last2+1] + content[last:]
    
    Login or Signup to reply.
  3. During the execution of your program, it failed to produce the desired output due to an incorrect string format. I noticed a formatting error in your code: the string "cleaned_content" is missing a closing right curly brace "}". What you need to do now is to replace split with rsplit, which will eliminate the formatting error present at the last occurrence of }n in the string.And give a correction here:

    import json
    
    response_message = {
        'id': 'chatcmpl-9Iof6Uwf74o9N6uKsyxIVMFFIDJYC',
        'object': 'chat.completion',
        'created': 1714271676,
        'model': 'gpt-3.5-turbo-0125',
        'choices': [
            {
                'index': 0,
                'message': {
                    'role': 'assistant',
                    'content': 'sfsdfs {n "plant": {n "light blocker": 1,n "give water": 0,n "spray water": 0,n "conditions": {n "humidity (%)": 56.78,n "temperature (C)": 23.45,n "light": 1,n "soil moisture": 654n }n}netc text  n}'
                },
                'logprobs': None,
                'finish_reason': 'stop'
            }
        ],
        'usage': {
            'prompt_tokens': 225,
            'completion_tokens': 78,
            'total_tokens': 303
        },
        'system_fingerprint': 'fp_3b956da36b'
    }
    
    # Extracting the content from the message
    content = response_message['choices'][0]['message']['content']
    
    # Remove the "etc text" from the content
    cleaned_content = content.split("{n" ,1)[1]
    cleaned_content = cleaned_content.rsplit('}n',1)[0] + '}'
    cleaned_content = '{n' + cleaned_content
    
    content_json = json.loads(cleaned_content)
    
    print(content_json)
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search