python中的Json模块dumps、dump、loads、load函数用法详解
作者:Python热爱者 发布时间:2023-11-09 20:01:30
标签:python,json,dumps,dump,loads,load
json的作用
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式
json.dumps(): 对数据进行编码,把python对象转换为字符串数据
json.loads(): 对数据进行解码,把json的字符串转换为python对象
python中的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)
来源:https://blog.csdn.net/qdPython/article/details/123923738


猜你喜欢
- 前言之前做了一个校园交友的APP,其中一个逻辑是通过用户的教务系统来确认用户是一名在校大学生,基本的想法是通过用户的账号和密码,用爬虫的方法
- 今天同事 明城 在项目中碰到一个 BUG,代码具体如下:<!DOCTYPE html PUBLIC "-//W3C//DTD
- request获取post请求中的json数据def hello(request): data = json.loads(request.b
- 经常开发asp但对于细致的说法,真实不太清楚,这里简单的介绍下。一般情况下读取数据都是用rs.open sql,conn,1,1修改数据:r
- python版本为python3.51.要求1)输入用户名密码2)认证成功后显示欢迎信息3)输错三次后锁定2.需求分析1)用户信息存储在文件
- 需求每天往一个表里面插入两条数据,但日期不同INSERT INTO test(`id`, `art_training_institution
- 前言在前端编程中,事件的应用十分广泛,DOM上的各种事件。在Ajax大规模应用之后,异步请求更得到广泛的认同,而Ajax亦是基于事件机制的。
- python聊天室很多人都觉得微信,QQ,ICQ(我不知道现在还能不能用了)都过于垃圾,想要自己做一个聊天室(或是聊天软件),所以我们可以自
- 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图
- 1.添加文件touch /Library/LaunchDaemons/com.mysql.mysql.plist2.添加内容<?xml
- vscode 的调试功能其实提供了一键编译运行的功能(ctrl+F5),但是启动特别特别慢… 又不想安装插件,后来发现vscode 提供了一
- 1 abstract验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中。传统的字符型验证安全性已经名存实亡的情
- 可用下面提供的强制登录的程序,它也可以用来做会员注册的。security.asp<%bLoggedIn =&nb
- 找到python3的安装路径python3自带一个把python2代码转换成python3代码的程序,叫"2to3"我们
- 先来定义分页语句将要用到的几个参数:int currentPage ; //当前页int pageRecord ; //每页显示记录数以之前
- 即使你没听说过“ * 六度分隔理论”,也很可能听过“凯文 • 贝肯 (Kevin Bacon)的六度分隔值游戏”。在这两个游戏中,目标都是
- 什么是CSS Sprites?“Sprite”(精灵)这个词在计算机图形学中有它独特的定义,由于游戏、视频等画质越来越高,必须有一种技术可以
- 最近研究微信API,发现个非常好用的python库:wxpy。wxpy基于itchat,使用了 Web 微信的通讯协议,实现了微信登录、收发
- 接上一篇内容:https://www.jb51.net/article/249934.htm一、聚簇索引其实之前内容中介绍的 B+ 树就是聚
- 项目有时要用一些Ajax的效果,因为比较简单,也就没有去用什么Ajax.net之类的东西,手写代码也就实现了。、第二天,有人反馈错误;说是只