我正在使用他们的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)”错误。
答案 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