1、json在python中的用法
在Python中我们大多数都是用json来进行数据的编码和解码
- json.dumps() 是将 列表,元祖,字典类型或者由前者组合而成的数据类型的数组编码成json格式的数据,然后存储到文件中
- json.loads() 是将json格式的文件解析
- s_dumps = json.dumps(data_obj, sort_keys=True, indent=4, ensure_ascii=False 其中sort_keys=True表示按键排序,indent=4表示以4个空格缩进,ensure_ascii表示是否以ASCII码编码
list1=[1,2,3,4] temp=(1,2,3,4) dic={"name":123} #json编码
res1=json.dumps(list1) res2=json.dumps(temp) res3=json.dumps(dic) #json解析
rst1=json.loads(res1) rst2=json.loads(res2) rst3=json.loads(res3) #当需要将Python中的对象进行json编码时,需调用对象的__dict__方法
class A(): def __init__(self): self.name="xx" self.age=30 a=A() print(json.dumps(a.__dict__))
''' dump()的第一个参数是要序列化的对象,第二个参数是打开的文件句柄 注意打开文件时加上以UTF-8编码打开 * 运行此文件之后在统计目录下会有一个data.json文件,打开之后就可以看到json类型的文件应该是怎样定义的 ''' with open("data.json", "w", encoding="UTF-8") as f: s_dump = json.dump(data_obj, f, ensure_ascii=False) """ load:从一个打开的文件句柄加载数据 注意打开文件的编码 """ with open("data.json", "r", encoding="UTF-8") as f_load: r_load = json.load(f_load) print(r_load)
2、当把存储json文件时,希望以中文显示需要加入 ensure_ascii=False这个条件,同时在写入文件时要加入encoding="utf-8"
with open("filename.txt","w",encoding="utf-8") as f: content=json.dumps(data,ensure_ascii=False) f.write(content) f.close()
这样就解决了文件中中文字符的编码问题