json模块
应用Json模块实现将json类型的数据转化成python类型的数据,或是将python类型的数据转化成为json类型的数据。
6.1 json模块介绍
-
json是python自带的模块,用于json与python数据之间的相互转换。
-
json数据与python数据类型之间的对应关系:
JSON PYTHON object dict array list string str number(int) int , long number(real) float true True false False null None
6.2 json数据与python数据之间的转换
- loads()与load()函数不一样,注意区别二者的应用对象;
- json.dumps(json_str,ensure_ascii=False),这里要注意不使用ASCII码才可以显示中文;
- json.dump(obj,fp),json对象obj写入到文件对象fp中;
import json
#1.将json字符串与python数据相互转化
json_str = '''[{"prviceName":"美国"}]'''#json格式中字典的键必须为双引号
# print(type(json_str))
rs = json.loads(json_str)
print(rs)#此时转换成功,其中rs中的键为单引号
json_str1 = json.dumps(rs, ensure_ascii=False)#默认是否使用ascii码,选择false,显示中文
print(json_str1)#此时数据又被转化为了Json类型的数据
#2.将json文件转化为python类型的数据
# with open(r'C:\Users\sxn\Desktop\json_text.txt') as fp:
# python_list = json.load(fp)
# print(python_list)
#python类型的数据以json格式写入文件
with open(r'C:\Users\sxn\Desktop\json_text.txt', 'w') as fp:#构建要写入的文件对象
json.dump(json_str1,fp,ensure_ascii=False)
6.3 案例:解析最新的疫情数据的json字符串
接正则表达式案例中使用提取数据,此时的json_str已经成为了json类型的数据。
import json
last_day_corona_virus = json.loads(json_str)#进行数据转换
print(last_day_corona_virus)