2

FQL facebook インターフェイスを使用して、ユーザーから情報を取得しています。デコード方法がわからないフィールドに出くわしました。

1 人のユーザーには、次の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ます。

いくつかのオプションでデコードしようとしましたが、適切なオプションが見つからないようです。

問題にアプローチする方法についての手がかりはありますか?

4

1 に答える 1

2

そこには 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}

そもそもその文字列をどのように取得したかを調べる必要があります。repr()結果の出力をjson.loads()どこかに保存したと思われます。

于 2013-09-17T19:05:05.427 に答える