Tôi đang cố gắng phân tích một đối tượng JSON thành một Python dict
. Tôi chưa bao giờ làm điều này trước đây. Khi tôi googled lỗi cụ thể này, (Điều gì là sai với char đầu tiên?), các bài viết khác đã nói rằng chuỗi được tải không thực sự là một chuỗi JSON. Tôi khá chắc chắn đây là, mặc dù.Đang cố gắng phân tích cú pháp JSON bằng Python. ValueError: Mong đợi tên thuộc tính
Trong trường hợp này, eval()
hoạt động tốt, nhưng tôi tự hỏi liệu có cách nào phù hợp hơn không?
Lưu ý: Chuỗi này đến trực tiếp từ Twitter, qua công cụ 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)
Đó chỉ là cú pháp python chứ không phải JSON. Sử dụng 'ast.literal_eval' để đánh giá an toàn – JBernardo