一、PyThon使用json对象
1、json定义
Json:javascript原生的对象,所谓原生对象指不需要第三方组件解析的对象,由浏览器自动进行解析的对象。
2、json对象的定义
Jsonobj={“键名”:值1,…,”键名”:值n};
3、json组件的引入
Import json
4、将python字典转为json字符串
jsonstr=json.dumps(python的字典对象)
示例如下:
import json
#定义python字典对象
dct={‘id’:1,‘sname’:‘张飞’,‘age’:22,‘address’:‘北京’,‘clazz’:‘大数据1班’}
#查看dct的类型
print(type(dct))
print(dct)
#获取字典中的数据
print(dct[‘id’])
print(dct[‘sname’])
print(dct[‘age’])
print(dct[‘address’])
print(dct[‘clazz’])
#将字典对象转为json字符串
jsonstr=json.dumps(dct,ensure_ascii=False)
print(type(jsonstr))
print(jsonstr)
结果如下:
<class ‘dict’>
{‘id’: 1, ‘sname’: ‘张飞’, ‘age’: 22, ‘address’: ‘北京’, ‘clazz’: ‘大数据1班’}
1
张飞
22
北京
大数据1班
<class ‘str’>
{“id”: 1, “sname”: “张飞”, “age”: 22, “address”: “北京”, “clazz”: “大数据1班”}
注意:ensure_ascii=False表示中文不用转为utf-8的编码字符(\uxxxx)
5、json字符串转为python字典对象
dic=json.laods(json字符串)
示例如下:
import json
dct={‘id’:1,‘sname’:‘张飞’,‘age’:22,‘address’:‘北京’,‘clazz’:‘大数据1班’}
#将字典对象转为json字符串
jsonstr=json.dumps(dct,ensure_ascii=False)
print(type(jsonstr))
print(jsonstr)
#将json字符串转为python字典
dic=json.loads(jsonstr)
print(type(dic))
print(dic[‘id’],’ ',dic[‘sname’])#使用字典对象输出键对应的值
结果消息如下:
<class ‘str’>
{“id”: 1, “sname”: “张飞”, “age”: 22, “address”: “北京”, “clazz”: “大数据1班”}
<class ‘dict’>
1 张飞
3、将字典对象转为字符串并存储到文件中
with open(“文件名”,”w”,encoding=”utf-8”) as f:
Json.dump(字典对象,f,indent=2,ensure_ascii=False) #写文件为多行
示例如下:
import json
import os
dct={‘id’:1,‘sname’:‘张飞’,‘age’:22,‘address’:‘北京’,‘clazz’:‘大数据1班’}
#将字典对象转为json字符串写入到文件
with open(“ss.json”,“w”,encoding=“utf-8”) as f:
json.dump(dct,f,indent=2,ensure_ascii=False)
4、从文件读取json字符串并转为python字典的方法
with open(“json文件名”,encoding=”utf-8”) as f:
dics=json.load(f)
5、综合示例如下:
import json
import os
#将字典数组转为json字符串
def dicsToJsonString(dics):
jsonstr=json.dumps(dics,ensure_ascii=False)
return jsonstr
#将json字符串转为字典的方法
def jsonStringToDict(jsonstring):
dicts=json.loads(jsonstring)
return dicts
#将字典数组集合转为json字符串存储到文件中的方法
def dictsWriteFile(dicts):
with open(“stu.json”,“w”,encoding=“utf-8”) as f:
json.dump(dicts,f,ensure_ascii=False)
print(“写出成功!”)
#从文件读取json字符串并转为字典
def fromFile2Dicts():
with open(“stu.json”,encoding=“utf-8”) as f:
dics2=json.load(f)
return dics2
if name == ‘main’:
dics = [
{‘id’: 1, ‘sname’: ‘张飞1’, ‘age’: 21, ‘address’: ‘北京’, ‘clazz’: ‘大数据1班’},
{‘id’: 2, ‘sname’: ‘张飞2’, ‘age’: 22, ‘address’: ‘北京’, ‘clazz’: ‘大数据2班’},
{‘id’: 3, ‘sname’: ‘张飞3’, ‘age’: 23, ‘address’: ‘北京’, ‘clazz’: ‘大数据3班’}
]
#####################字典集合转字符串#################################################
strjson = dicsToJsonString(dics) #调用字典转字符串的方法
print(strjson)
print(“strjson的类型:”,type(strjson))
#########################################################################
##################调用json字符串转字典的方法############################
dicts=jsonStringToDict(strjson)
print(“dicts的类型:”, type(dicts))
#print(dicts)
print(“编号”,"\t",“姓名\t”,“性别\t”,“地址\t”,“班级”)
print("=====================================================")
for dic in dicts:
print(dic[‘id’],"\t",dic[‘sname’],"\t",dic[“age”],"\t",dic[“address”],"\t",dic[“clazz”])
##########################################################################################
#####将字典集合转为json字符串并存储到文件中的方法
dictsWriteFile(dicts)
#################################################
####调用文件中的json字符串转为dicts数组
dics3=fromFile2Dicts()
print("编号", "\t", "姓名\t", "性别\t", "地址\t", "班级")
print("=====================================================")
for dic in dics3:
print(dic['id'], "\t", dic['sname'], "\t", dic["age"], "\t", dic["address"], "\t", dic["clazz"])
##########################################################################################