JSONオブジェクトをPython dict
に解析しようとしています。私は以前これをやったことがない。私はこの特定のエラーを見つけたときに(最初の文字に何か問題がありますか?)、ロードされている文字列は実際にはJSON文字列ではないとの他の投稿があります。しかし、これは確かです。PythonでJSONを解析しようとしています。 ValueError:プロパティ名を期待する
この場合、eval()
はうまく動作しますが、より適切な方法があるのでしょうか?
注:この文字列は、Twitterから直接、pttツールを使用しています。
>>> 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)
これはPythonの構文であり、JSONではありません。安全な評価のために 'ast.literal_eval'を使用してください。 – JBernardo