小编典典

尝试在Python中解析JSON。ValueError:期望的属性名称[重复]

json

我正在尝试将JSON对象解析为Python dict。我从没做过 当我搜索这个特定错误( 第一个字符有什么问题吗?
)时,其他帖子都说正在加载的字符串实际上不是JSON字符串。我很确定这是。

在这种情况下,eval()效果很好,但是我想知道是否有更合适的方法?

注意: 该字符串直接通过ptt工具来自Twitter。

>>> import json
>>> line = '{u\'follow_request_sent\': False, u\'profile_use_background_image\': True,
         u\'default_profile_image\': False, 
         u\'verified\': False, u\'profile_sidebar_fill_color\': u\'DDEEF6\',
         u\'profile_text_color\': u\'333333\', u\'listed_count\': 0}'
>>> json.loads(line)

Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 326, in loads
       return _default_decoder.decode(s)
     File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
       obj, end = self.raw_decode(s, idx=_w(s, 0).end())
     File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode
       obj, end = self.scan_once(s, idx)
   ValueError: Expecting property name: line 1 column 1 (char 1)

阅读 302

收藏
2020-07-27

共1个答案

小编典典

那绝对不是JSON-无论如何都不是上面打印的。它已经被解析为Python对象-JSON具有false,not False和不会像uunicode一样显示字符串(所有JSON字符串都是unicode)。您确定您尚未将json字符串免费转换为链中某处的Python对象,因此将其加载到json.loads()显然是错误的,因为实际上它不是字符串?

2020-07-27