JSON概述
json
模块有四个比较重要的函数,分别是:
-
dump
- 将Python对象按照JSON格式序列化到文件中 -
dumps
- 将Python对象处理成JSON格式的字符串 -
load
- 将文件中的JSON数据反序列化成对象 -
loads
- 将字符串的内容反序列化成Python对象
在Python中,如果要将字典处理成JSON格式(以字符串形式存在),可以使用json
模块的dumps
函数,代码如下所示。
dict转换成str
import json
my_dict = {
'name': '骆昊',
'age': 40,
'friends': ['王大锤', '白元芳'],
'cars': [
{'brand': 'BMW', 'max_speed': 240},
{'brand': 'Audi', 'max_speed': 280},
{'brand': 'Benz', 'max_speed': 280}
]
}
print(json.dumps(my_dict))
运行上面的代码,输出如下所示,可以注意到中文字符都是用Unicode编码显示的。
{"name": "\u9a86\u660a", "age": 40, "friends": ["\u738b\u5927\u9524", "\u767d\u5143\u82b3"], "cars": [{"brand": "BMW", "max_speed": 240}, {"brand": "Audi", "max_speed": 280}, {"brand": "Benz", "max_speed": 280}]}
JSON格式的dict转换文本文件
如果要将字典处理成JSON格式并写入文本文件,只需要将dumps
函数换成dump
函数并传入文件对象即可,会创建data.json
文件,文件的内容跟上面代码的输出是一样的。
import json
my_dict = {
'name': '骆昊',
'age': 40,
'friends': ['王大锤', '白元芳'],
'cars': [
{'brand': 'BMW', 'max_speed': 240},
{'brand': 'Audi', 'max_speed': 280},
{'brand': 'Benz', 'max_speed': 280}
]
}
with open('data.json', 'w') as file:
json.dump(my_dict, file)
文本文件转换成dict
读取上面创建的data.json
文件,将JSON格式的数据还原成Python中的字典。
import json
with open('data.json', 'r') as file:
my_dict = json.load(file)
print(type(my_dict))
print(my_dict)
使用requests网络API获取数据
import requests
resp = requests.get('http://api.tianapi.com/guonei/?key=cd642e9803295d7b5112136a301a414d&num=10')
if resp.status_code == 200:
data_model = resp.json()
print(data_model)
print(type(data_model))
for news in data_model['newslist']:
print(news)
print(news['title'])
print(news['url'])
网友评论