相对于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