Google数据源JSON无效吗?

时间:2009-03-10 00:07:32

标签: python simplejson

我正在使用他们的Python library实施Google数据源。我希望使用simplejson library.

将库中的响应导入到另一个Python脚本中

但是,即使他们的example也没有在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}]}]}

如何调整simplejson'load'功能以导入上述JSON内容?我认为主要问题是对象键不是字符串。

我宁愿不写一个正则表达式来将键转换为字符串,因为我觉得这样的代码很难维护。

当我尝试使用simplejson将上述JSON导入Python时,我正在收到“Expecting property name:line 1 column 1(char 1)”错误。

1 个答案:

答案 0 :(得分:8)

没有字符串键,它被认为是无效的JSON。

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

必须是:

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

根据Google Data Source页面,他们返回的是无效的JSON。他们没有特别说出来,但他们所有的例子都没有按键。

这是一个相当完整的JSON processors for Python列表,详细介绍了它们支持的格式以及效果如何。大多数不支持非字符串键,但似乎demjson会转换它。

easy_install demjson