Python编程:demjson解析不规范的json字符串
【摘要】 先看几个例子
# -*- coding: utf-8 -*-
import json
# javascript中的对象
js_json = "{x:1, y:2, z:3}"
# python打印出来的字典
py_json1 = "{'x':1, 'y':2, 'z':3}"
# 解析不规则的json会报错
json.loads(js_json)
json.l...
先看几个例子
# -*- coding: utf-8 -*-
import json
# javascript中的对象
js_json = "{x:1, y:2, z:3}"
# python打印出来的字典
py_json1 = "{'x':1, 'y':2, 'z':3}"
# 解析不规则的json会报错
json.loads(js_json)
json.loads(py_json1)
# ValueError: Expecting property name: line 1 column 2 (char 1)
# 解析规则的json
py_json2 = '{"x":1, "y":2, "z":3}'
data = json.loads(py_json2)
print(data)
# {'y': 2, 'x': 1, 'z': 3}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
python的json模块只能解析规则的json字符串,即字典的key要用双引号
,
没有双引号或者使用单引号都不能正常解析
虽然打印出来的字段带有单引号,但json中不使用单引号
使用demjson
安装
pip install demjson
- 1
代码示例
# -*- coding: utf-8 -*-
import demjson
js_json = "{x:1, y:2, z:3}"
py_json1 = "{'x':1, 'y':2, 'z':3}"
py_json2 = '{"x":1, "y":2, "z":3}'
data = demjson.decode(js_json)
print(data)
# {'y': 2, 'x': 1, 'z': 3}
data = demjson.decode(py_json1)
print(data)
# {'y': 2, 'x': 1, 'z': 3}
data = demjson.decode(py_json2)
print(data)
# {'y': 2, 'x': 1, 'z': 3}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
demjson 能够正常解析不规范的json数据,效果还不错
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/86513207
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)