我在下面显示了一些json。
{
u'application':{
u'platform':u'iPhone',
u'locale':u'en_US',
u'server':{
u'test':False
},
u'os_version':u'8.1',
u'carrier':u'unknown',
u'device':u'iPhone Simulator',
u'app_version':u'unknown',
u'os':u'iPhone OS',
u'properties':{
},
},
u'data':[
{
u'session':{
u'properties':{
}
},
u'events':[
{
u'timestamp':1416848727792,
u'properties':{
},
u'event_sequence_number':427,
u'network_type':u'unknown'
},
]
}
],
u'data_version':u'2.0'
}
如果我str()
这个json并将其设置为等于变量a。
然后我执行json.loads(a)
我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 381, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)
但是如果json没有unicode表示,json.loads
工作正常。我该如何解决这个问题?
答案 0 :(得分:5)
问题的前提是错误的:给出的输入不是有效的JSON。
根据需要使用json.dump()
或json.dumps()
生成您随后尝试加载的文件。