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格式里面有单引号,改成双引号就可以了,但是又出现了新的错误。


python解析json_第1张图片

【总结】

此处的

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

你可能感兴趣的:(python解析json)