5

Python ライブラリを使用して Google データ ソースを実装しています。simplejson ライブラリを使用して、ライブラリからの応答を別の Python スクリプトにインポートできるようにしたいと考えています。

ただし、そのでさえJSONLint では検証されません。

{cols:
    [{id:'name',label:'Name',type:'string'},
     {id:'salary',label:'Salary',type:'number'},
     {id:'full_time',label:'Full Time Employee',type:'boolean'}],
rows:
    [{c:[{v:'Jim'},{v:800,f:'$800'},{v:false}]},
     {c:[{v:'Bob'},{v:7000,f:'$7,000'},{v:true}]},
     {c:[{v:'Mike'},{v:10000,f:'$10,000'},{v:true}]},
     {c:[{v:'Alice'},{v:12500,f:'$12,500'},{v:true}]}]}

上記の JSON コンテンツをインポートするために simplejson の「loads」関数を微調整するにはどうすればよいですか? 主な問題は、オブジェクト キーが文字列ではないことだと思います。

キーを文字列に変換する正規表現を書きたくないのは、そのようなコードを維持するのが煩わしいからです。

上記の JSON を simplejson を使用して Python にインポートしようとすると、現在、"Expected property name: line 1 column 1 (char 1)" エラーが発生しています。

4

1 に答える 1

8

文字列キーがない無効な JSON と見なされます。

{id:'name',label:'Name',type:'string'}

でなければなりません:

{'id':'name','label':'Name','type':'string'}

Google データ ソースページによると、無効な JSON が返されています。彼らは具体的には言いませんが、すべての例でキーに引用符がありません。

これは、Python 用の JSON プロセッサのかなり完全なリストであり、それらがサポートする形式とその程度について詳しく説明しています。ほとんどは文字列以外のキーをサポートしていませんが、demjsonはそれを変換するようです。

easy_install demjson
于 2009-03-10T01:35:25.357 に答える