Json模块dumps、dump、loads、load函数介绍
1、json.dumps()和loads()
json.dumps()将dict类型数据转成str。
json.loads()刚好相反,将str类型的数据转成dict。
import json data= {'a':'1111','b':'2222','c':'3333','d':'4444'} filename = r"d:\1.json"
# 使用dumps() str_data = json.dumps(data) print(str_data) #输出{"a": "1111", "b": "2222", "c": "3333", "d": "4444"}
# 使用loads() dict_data = json.loads(str_data) print(dict_data) #输出{'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
2、json.dump()和json.load()
json.dump主要用来文件写入,json.load主要用来文件读取。但是只能写入读取一条数据,多条会报错。
json.dump(x,f),x是对象,f是一个文件对象,这个方法可以将json字符串写入到文件中。
json.load(f),f是一个文件对象,这个方法可以从文件中读取json数据。
import json data = {'a':'1111','b':'2222','c':'3333','d':'4444'} filename = r"d:\1.json" # 使用dump()写入一行数据 with open(filename, "w") as f: json.dump(data,f) # 使用load()读取一行数据 with open(filename, 'r') as f: jsObj = json.load(f) for key in jsObj.keys(): print('key: %s value: %s' % (key,jsObj.get(key)))
输出:
key: a value: 1111
key: b value: 2222
key: c value: 3333
key: d value: 4444
3、如何读取写入多行数据呢?
import json filename = r"d:\1.json" data = [{'a':'1111','b':'2222','c':'3333','d':'4444'}, {'e':'1111','f':'2222','g':'3333','h':'4444'}, {'i':'1111','j':'2222','k':'3333','l':'4444'}, {'m':'1111','n':'2222','o':'3333','p':'4444'}] #写入多行数据到文件 with open(filename,'w') as f: for i in range(len(data)): f.write(json.dumps(data[i])+'\n') #一定要换行 #从文件读取多行数据,并转化为list with open(filename,'r') as f: jsObj=[json.loads(line) for line in f] print(jsObj)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署