python 中关于json的封装和解析


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()

这样就解决了文件中中文字符的编码问题


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM