JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json函数的简单使用
python开发中使用json函数,导入json包
import json
json.dumps() # 将 Python 对象编码成 JSON 字符串
json.loads() # 将JSON字符串转为python对象
json.dumps
import json
a = {
"name": "hello",
"age": "18",
"addr": "广州市天河区"
}
print(json.dumps(a))
# {"name": "hello", "age": "18", "addr": "\u5e7f\u5dde\u5e02\u5929\u6cb3\u533a"}
print(type(json.dumps(a))
# <class 'str'>
以上代码可以看出json.dumps将dict对象转为了json字符串,但是有一个问题,dict有value为中文时,转化以后中文变成了unicode,其实指定json.dumps中的ensure_ascii参数可以解决这个问题
import json
a = {
"name": "hello",
"age": "18",
"addr": "广州市天河区"
}
print(json.dumps(a, ensure_ascii=False))
# {"name": "hello", "age": "18", "addr": "广州市天河区"}
如果想要进行json格式输出的话也只需要指定参数哟,并且sort_keys字段进行根据key的acii码排序
import json
a = {
"name": "hello",
"age": "18",
"addr": "广州市天河区"
}
# 键值排序、缩进为 2、以',', ': '为分隔
print(json.dumps(a, ensure_ascii=False,sort_keys=True, indent=2, separators=(', ', ': ')))
# {
# "addr": "广州市天河区",
# "age": "18",
# "name": "hello"
# }
json格式输出只是为了让我们更直观的知道各key对应的value, 如果数据较多的情况下,json格式化输出还是必要的
json.loads
import json
a = '{"name": "hello","age": "18","addr": "广州市天河区"}'
print(json.loads(a))
# {"name": "hello", "age": "18", "addr": "广州市天河区"}
print(type(json.loads(a)))
# <class 'dict'>
json.loads将json字符串转换成了python dict对象。在爬虫的时候,使用requests或者urllib从其他网站上获取到数据得到的都是json字符串,所以这里用的 json.loads 可以帮到很多忙,转化成python的dict对象以后,可以进行根据 key 取相对应的value。
菜鸟教程 点击进行更多的知识点学习