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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值