我在下面的字符串中有一个字符串
json_string = '{u"favorited": false, u"contributors": null}'
json_string1 = '{"favorited": false, "contributors": null}'
以下 json 加载工作正常。
json.loads(json_string1 )
但是,以下 json 加载给我值错误,如何解决这个问题?
json.loads(json_string)
ValueError: Expecting property name: line 1 column 2 (char 1)
最佳答案
我从客户那里收到的字符串也遇到了同样的问题。琴弦和你一起到达。我找到了使用 ast 包的解决方法:
import ast
import json
my_str='{u"favorited": false, u"contributors": null}'
my_str=my_str.replace('"',"'")
my_str=my_str.replace(': false',': False')
my_str=my_str.replace(': null',': None')
my_str = ast.literal_eval(my_str)
my_dumps=json.dumps(my_str)
my_json=json.loads(my_dumps)
请注意将“false”和“null”替换为“False”和“None”,因为literal_eval仅识别特定类型的Python文字结构。这意味着您的代码是否需要更多替换 - 取决于您收到的字符串。
关于python - 使用 'u' 作为 json 加载 python 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34764979/