1.dump和load/dumps和loads区别
dump和load是对于json格式的写入和读取
dumps和loads只是类型转换
可填参数
参数 |
说明 |
skipkey |
默认为False,当dict对象里的数据不是Python的基本数据类型(str,unicode,int,long,float,bool,None)时,当skipkey为False,就会报错,如果skipkey为True,则可以跳过这类key; |
indent |
如果填0或者不填,则按照一行进行打印,否则按照indent的数值显示前面的空格(正整数形式) |
separators |
分隔符,默认为“(',','😂”,它表示key之间用“,”隔开,key和value之间用“:”隔开 |
encoding |
编码格式,默认值是UTF-8 |
sort_keys |
对key、value进行排序,默认值是False,即不排序 |
ensure_ascii |
默认为True,如果dict对象里含有none-ASCII的字符,则显示\uXX的格式,如果为False,则能正常显示出来 |
2.读写操作
dump
import json
data = {'str3':'xyz','str2' :'efgh','str1':'abcd'}
with open(' data. txt', '', encoding='utf-8') as f:
json.dump(data, f)
load
with open(' data. txt', 'r') as f:
d2 = json.load(f)
3.类型转换
dumps
dumps函数是对数据进行编码,形成json格式的数据
data_dict = {"key2": "value2", "key1": "value1"}
json1 = json.dumps(data_dict, sort_keys=True)
print(json1)
json2 = json.dumps(data_dict)
print(json2)
loads
loads函数则是将json格式的数据解码,转换为Python字典
import json
data_str = '{"key1": "value1", "key2": "value2", "key3": "value3"}'
data_dict = json.loads(data_str)
print(data_dict)
4.文件操作(参考)
普通文本文件
json文件
{}
def select_user():
with open(settings.USER_JSON_PATH, 'r', encoding='utf-8') as f:
user_dict = json.load(f)
return user_dict
def create_user(user,pwd):
user_dict = select_user()
user_dict[user] = pwd
with open(settings.USER_JSON_PATH, 'w', encoding='utf-8') as f:
json.dump(user_dict, f, ensure_ascii=False)
二进制文件
def select():
with open(settings.USER_JSON_PATH, 'rb') as f:
user_dict = json.load(f)
return user_dict
def create(data):
with open(settings.USER_JSON_PATH, 'wb') as f:
'''
文件使用wb写入的,所有需要使用bytes类型写入
'''
a = json.dumps(data)
f.write(a.encode('utf-8'))
if __name__ == '__main__':
data = select()
print(data)
data['absssc'] = 122
create(data)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了