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,字典,不能是元组和集合(集合报错,元组不报错,自动转成列表)