我正在使用 FQL facebook 界面从用户那里检索一些信息。我刚遇到一个我不知道如何解码的字段。
一个用户有后续的 current_location
字段:
u'{"city": u"\\xc1vila", "name": u"\\xc1vila, Castilla y Le\\xf3n, Spain",
"zip": "", "country": "Spain", "longitude": -4.7, "state": "Castilla y Leon",
"latitude": 40.65, "id": 113972385284243}'
当尝试 json.loads()
时失败并显示 *** ValueError: No JSON object could be decoded
。
我已经尝试使用多个选项进行解码,但似乎没有找到正确的选项。
关于如何解决问题的任何线索?
那里没有 JSON 数据,那里有 Python 字符串文字。
使用ast.literal_eval()
再次获取 Python 对象:
>>> import ast
>>> value = u'{"city": u"\\xc1vila", "name": u"\\xc1vila, Castilla y Le\\xf3n, Spain", "zip": "", "country": "Spain", "longitude": -4.7, "state": "Castilla y Leon", "latitude": 40.65, "id": 113972385284243}'
>>> ast.literal_eval(value)
{'city': u'\xc1vila', 'name': u'\xc1vila, Castilla y Le\xf3n, Spain', 'zip': '', 'country': 'Spain', 'longitude': -4.7, 'state': 'Castilla y Leon', 'latitude': 40.65, 'id': 113972385284243}
您首先需要了解您是如何获得该字符串的。我怀疑您将 json.loads()
结果的 repr()
输出存储在某处。
我是一名优秀的程序员,十分优秀!