python解析json

相对于python解析XML来说,我还是比较喜欢json的格式返回,现在一般的api返回都会有json与XML格式的选择,json的解析起来个人觉得相对简单些,先看一个简单车辆查询的api返回!


importurllib2

importjson

html=urllib2.urlopen(r'自己的APi接口')

hjson=json.loads(html.read())

printhjson['bike_code']

printhjson['lend_card_in_no']

printhjson['update_time']

等程序运行的时候,出现如下错误:

Python中使用json.loads解码字符串时出错:ValueError: Expecting property name: line 1 column 1 (char 1)

原因是JSON格式里面有单引号,改成双引号就可以了,但是又出现了新的错误。


【总结】

此处的

ValueError: Expecting property name: line 1 column 1 (char 1)

属性没有加双引号导致

ValueError: No JSON object could be decoded

属性值没加双引号导致出错

类型的错误,就是由于JSON中,标准语法中,不支持单引号,

属性或者属性值,都必须是双引号括起来的。

所以,可以用类似于:

addedSingleQuoteJsonStr = re.sub(r"(,?)(\w+?)\s*?:",r"\1'\2':", orginalJsonStr);

doubleQuotedJsonStr = addedSingleQuoteJsonStr.replace("'","\"");

的代码,用正则表达式来处理数据,这个接下来自己好好看看!自己还不会这个

1:给属性添加单引号;

2:给属性值添加单引号;

3:把所有的单引号替换成双引号;

参考文章:http://my.oschina.net/yangyanxing/blog/159211

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容