[英]Convert Google results object (pure js) to Python object
因此,我正在嘗試使用Google Map建議API請求地名建議。 不幸的是我找不到這方面的文檔。
這是一個示例URI:
http://maps.google.com/maps/suggest?q=lon&cp=3&ll=55.0,-3.5&spn=11.9,1.2&hl=en&gl=uk&v=2
返回:
{suggestion:[{query:"London",...
我想在python(2.5)中使用它。 現在,在正確的JSON中,鍵周圍會出現這樣的引號:
{"suggestion":[{"query":"London",...
我本可以使用simplejson之類的東西,但由於它有點卡住了。
這里有兩種可能的解決方案: 我可以訪問API代碼並找到一個返回正確JSON的選項,或者在python中進行操作。
有什么想法。
我會嘗試四處尋找以獲取JSON,但是如果沒有這種怪異,有人會不可避免地對我大喊:
class Iden(object):
def __getitem__(name, index):
return index
notjson = '{...}'
data = eval(notjson, {}, Iden())
gh,那確實很煩人。 這是JavaScript文字,但毫無意義的不是JSON。
從理論上講,您應該能夠從Python stdlib(或simplejson
2.6之前的版本,相同)導入json.decoder.JSONDecoder
並將其子類化,然后將該子類傳遞給json.loads
以覆蓋解碼器行為。 實際上,這實際上並不可行,因為json.decoder
充滿了抵抗子類化的全局交叉引用,而您需要更改的位是def JSONObject
中間的slap bang。
因此,可能值得看看其他Python JSON庫。 我發現這一個 ,其在“非嚴格”模式,將解析不帶引號的對象屬性的名稱:
>>> import demjson
>>> demjson.decode('{suggestion:[{query:"London",interpretation: ...')
{u'suggestion': [{u'query': u'London', u'operation': 2, u'interpretation': ...
import demjson
demjson.decode(google.js)
我在嘗試分析Google財經選項“ JSON”數據時發現了這一點,很多人注意到,這些數據不符合JSON。
demjson使我免於編寫令人討厭的regex字符串; 它只是工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.