json模块
json是干什么的
把一个东西变成序列 有序的叫序列
{'a','b'} # 集合是散列
json.dumps()做序列化,转成字符串格式(json串)
import json # dic={ # "operate":"login", # 必须用双引号 # "username":"admin", # "password":"123456" # } # # # print(dic,type(dic)) # dic1=json.dumps(dic) # 做序列化,转成字符串格式(json串) # # print(dic1,type(dic1)) # byte_json=dic1.encode('utf-8') # 转成字节形式 # print(byte_json)
网络传输不认识字典
文件传输也不认识字典
json不认识集合,会报错
json不认识元组,不报错,转成列表
json.loads() 反序列化,变成原本的数字类型
dic={"南京":{"江宁":"九龙湖","玄武":"玄武湖"}} # dic1=json.dumps(dic,ensure_ascii=False) # ensure_ascii=False 解决中文乱码问题 # print(dic1) # with open('city.txt',mode='w',encoding='utf-8')as f: # 写进文件 # f.write(dic1) with open('city.txt',encoding='utf-8')as f1: str=f1.read() print(str) dic_json=json.loads(str) # 反序列化,变成原本的数字类型 print(dic_json) # 字典格式
总结:
json的key必须是字符串,value只能是列表,字符串,数字,bool,字典,不能是元组和集合(集合报错,元组不报错,自动转成列表)