Python解析JSON【python第三方Demjson库】【将 Python对象编码成 JSON 字符串 || 将JSON字符串解码成Python对象】
2021/7/8 14:09:07
本文主要是介绍Python解析JSON【python第三方Demjson库】【将 Python对象编码成 JSON 字符串 || 将JSON字符串解码成Python对象】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Demjson 是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能。
demjson模块提供用于编码或解码用语言中性JSON格式表示的数据的类和函数(这在ajax Web应用程序中通常被用作XML的简单替代品)。此实现尽量尽可能遵从JSON规范(RFC 4627),同时仍然提供许多可选扩展,以允许较少限制的JavaScript语法。它包括完整的Unicode支持,包括UTF-32,BOM,和代理对处理。它还可以支持JavaScript的南方和无穷数字类型以及它的“未定义”类型。它还包括一个皮棉像JSON语法验证器测试对于严格遵守标准的JSON文本。
Github 地址:https://github.com/dmeranda/demjson
官方地址:http://deron.meranda.us/python/demjson/
为什么有时候Json库不能用?而是使用Demojson库?
python中json模块能解析的对象格式是有限的,查看下面这四种格式,唯独第四种可以用json.loads方法。
# javascript中的对象,json.loads(js_json)会报错 js_json1 = "{x:1, y:2, z:3}" # python打印出来的字典,json.loads(js_json1)会报错 py_json1 = "{'x':1, 'y':2, 'z':3}" # key没有引号,只有values有引号 py_json3 = {0:"a",1:"b",2:"c",3:"d"} # 唯独这种格式,json.loads(py_json2)不会报错,得到{'x': 1, 'y': 2, 'z': 3} py_json2 = '{"x":1, "y":2, "z":3}'
上面json模块无法解析的情况,demjson都能搞定:
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}' py_json3 = {0:"a",1:"b",2:"c",3:"d"} 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} data = demjson.decode(py_json3) print(data) # {0: 'a', 1: 'b', 2: 'c', 3: 'd'}
环境配置
①Windows
pip install Demojson
②Linux
$ tar -xvzf demjson-2.2.3.tar.gz $ cd demjson-2.2.3 $ python setup.py install
Demjson库
函数 | 描述 |
---|---|
encode | 将 Python 对象编码成 JSON 字符串 |
decode | 将已编码的 JSON 字符串解码为 Python 对象 |
encode
encode() 函数用于将 Python对象编码成JSON 字符串。
语法
demjson.encode(self, obj, nest_level=0)
实例
以下实例将数组编码为 JSON 格式数据:
#!/usr/bin/python import demjson data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ] json = demjson.encode(data) print json 以上代码执行结果为: [{"a":1,"b":2,"c":3,"d":4,"e":5}]
decode
decode() 函数解码 JSON数据。该函数返回 Python对象。
语法
demjson.decode(self, txt)
实例
以下实例展示了Python 如何解码 JSON 对象:
#!/usr/bin/python import demjson json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; text = demjson.decode(json) print text 以上代码执行结果为: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
这篇关于Python解析JSON【python第三方Demjson库】【将 Python对象编码成 JSON 字符串 || 将JSON字符串解码成Python对象】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-30React Native常用组件-点击组件
- 2024-05-30uniapp+vue3+uv-ui手机端后台OA管理模板
- 2024-05-29Python网络爬虫的时候json=就是让你少写个json.dumps()
- 2024-05-27React Native常用组件-展示组件
- 2024-05-27React Native常用组件-列表组件
- 2024-05-09vue3开发前端表单缓存自定义指令,移动端h5必备插件
- 2024-05-09React Hooks在class组件中的使用方式
- 2024-03-30[OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- 2024-03-29terraform jsonencode
- 2024-03-13vuex-persist