用于utf-8的Python json.loads

Ash*_*are 1 python json utf-8

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

json的粗略草图是:

{u'key': {u'key2': u'value'}, ...., u'key3' : u'value'}
Run Code Online (Sandbox Code Playgroud)

做一个简单的python会json.loads()导致以下错误:

ValueError: Expecting property name: line 1 column 2 (char 1)
Run Code Online (Sandbox Code Playgroud)

根据SO的一些相关答案,我尝试将其转为unicode:

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


ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
Run Code Online (Sandbox Code Playgroud)

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

dee*_*ets 7

不是 JSON!它看起来像一个python序列化repr,您可以通过它ast.literal_eval(node_or_string)ast-module 加载.