Python JSON

1、Python中JSON

Python有一个json的内置程序包,可用于处理JSON数据。

例如:

导入json模块:

import json

2、解析JSON—从JSON转换为Python对象
如果有JSON字符串,则可以使用json.loads()方法进行解析。

结果将是一个Python字典。

例如:

从JSON转换为Python:

import json

x =  '{ "name":"cjavapy", "age":3, "city":"china"}'

# 解析 x:
y = json.loads(x)

print(y["name"])

3、从Python对象转换成JSON
如果有Python对象,则可以使用json.dumps()方法将其转换为JSON字符串。

例如:

从Python对象转换为JSON:

import json

# a Python object (dict):
x =  '{ "name":"cjavapy", "age":3, "city":"china"}'


# convert into JSON:
y = json.dumps(x)

#结果是 JSON string:
print(y)

下列类型可以转换Python对象成JSON字符串:

dict
list
tuple
string
int
float
True
False
None
例如:

将Python对象转换为JSON字符串,并输出值:

import json

print(json.dumps({"name": "cjavapy", "age": 3}))
print(json.dumps(["python", "cjavapy"]))
print(json.dumps(("python", "cjavapy")))
print(json.dumps("hello"))
print(json.dumps(42))
print(json.dumps(31.76))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))

从Python对象转换为JSON时,Python对象将转换为等效的JSON(JavaScript):
在这里插入图片描述
例如:

转换包含所有合法数据类型的Python对象:

import json

x = {
"name": "python",
"age": 20,
"married": True,
"divorced": False,
"children": ("c","python"),
"pets": None,
"langs": [
{"model": "java", "year": 5},
{"model": "python", "year": 6}
]
}
print(json.dumps(x))

4、格式化json.dumps()生成的JSON字符串
上面的示例显示了一个JSON字符串,但是它不是很容易阅读,没有缩进和换行符。

json.dumps()方法有一些参数,以便更容易地读取结果:

例如:

使用indent参数定义缩进数量:

json.dumps(x, indent=4)

还可以定义分隔符,默认值为(", ", ": "),这意味着使用逗号和空格分隔每个对象,并使用冒号和空格分隔键和值:

例如:

使用separators参数更改默认的分隔符:

json.dumps(x, indent=4, separators=(". ", " = "))

5、对json.dumps()结果排序
json.dumps()方法有对结果中的键进行排序的参数:

例如:

使用sort_keys参数指定是否对结果进行排序:

json.dumps(x, indent=4, sort_keys=True)

6、使用第三方库:Demjson
Demjson 是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能。

Github 地址:https://github.com/dmeranda/demjson

官方地址:http://deron.meranda.us/python/demjson/

1)环境配置
在使用 Demjson 编码或解码 JSON 数据前,我们需要先安装 Demjson 模块。本教程我们会下载 Demjson 并安装:

tar -xvzf demjson-2.2.3.tar.gz
cd demjson-2.2.3
python setup.py install

更多安装介绍文档:http://deron.meranda.us/python/demjson/install

2)JSON 函数
在这里插入图片描述
3)encode使用
Python 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}]

4)decode使用
Python 可以使用 demjson.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)

以上代码执行结果为:

{u'a':1, u'c':3, u'b':2, u'e':5, u'd':4}

了解更多分析及数据抓取可查看:
http://cloud.yisurvey.com:9081/html/bd9fb365-ae11-4182-84d0-af28197bac71.html?ly=csdn
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值