utf-8的Python json.loads

utf-8的Python json.loads,python,json,utf-8,Python,Json,Utf 8,我有一个(无效)json文件,它是UTF-8格式的 json的草图如下: {u'key': {u'key2': u'value'}, ...., u'key3' : u'value'} 执行简单的pythonjson.loads()会导致以下错误: ValueError: Expecting property name: line 1 column 2 (char 1) 根据一些相关的答案,我尝试将其更改为unicode: line = unicode(line,'utf-8') data

我有一个(无效)json文件,它是UTF-8格式的

json的草图如下:

{u'key': {u'key2': u'value'}, ...., u'key3' : u'value'}
执行简单的python
json.loads()
会导致以下错误:

ValueError: Expecting property name: line 1 column 2 (char 1)
根据一些相关的答案,我尝试将其更改为unicode:

line = unicode(line,'utf-8')
data = json.loads(line)


ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

我能想到的一个解决方案是用双引号替换所有单引号并继续,但我在想——如果有更简单的解决方案来解析文件以获取python dict?

这不是JSON!它看起来像是通过
repr
进行的python序列化,您可以使用
ast.literal\u eval(节点或字符串)
ast
-模块加载它。

这不是JSON!它看起来像是通过
repr
进行的python序列化,您可以从
ast
-模块加载
ast.literal\u eval(node\u或字符串)

ast.literal\u eval()
eval()安全得多
ast.literal\u eval()
eval()安全得多
。我建议您通过一个搜索引擎运行JSON数据,您还可以搜索其他类型的数据。检查@joe cheng提供的源字符串和ans中是否\r\n存在。我建议您通过另一个搜索引擎运行JSON数据。检查@joe cheng提供的源字符串和ans中是否\r\n存在