Python操作json文件反序列化和序列化是怎样的
Admin 2022-07-04 群英技术资讯 1171 次浏览
今天这篇给大家分享的知识是“Python操作json文件反序列化和序列化是怎样的”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“Python操作json文件反序列化和序列化是怎样的”文章能帮助大家解决问题。json转化为python表示反序列化
python转化为json表示为序列化
json是python的内置模块,不需要安装
| Json | Python |
| 对象(object) | 字典(dict) |
| 数组(array) | 列表(list) |
| 字符串(string) | 字符串(str) |
| 整数(int) | 整数(int) |
| 实数(float) | 实数(float) |
| true | True |
| false | False |
| null | None |
json提供的两个函数支持json字符串反序列化为一个python对象
json.loads(s)
其中s表示字符串
import json
str_json = '{"name":"张三","age":24}'
res = json.loads(str_json)
print(res, type(res)) #{'name': '张三', 'age': 24} <class 'dict'>
json.load(fb)
fb:表示为文件对象test.json
test.json
{
"name":"张三",
"age":24,
"friends": [{
"name": "李四",
"age": 23
},
{
"name": "王麻子",
"age": 24
}],
"hobby": ["玩游戏","看电影"]
}
import json
with open('test.json', 'r', encoding='utf-8') as f:
res = json.load(f)
print(res, type(res))
# {'name': '张三', 'age': 24, 'friends': [{'name': '李四', 'age': 23}, {'name': '王麻子', 'age': 24}], 'hobby': ['玩游戏', '看电影']} <class 'dict'>
json字符串一般不会单独出现
json.loads('"test"') #'test'
一般会放在字典或者列表中
json.loads('["test1","test2","test3"]') #['test1','test2','test3']
json.dumps(obj,ensure_ascii=True,indent=None,sort_keys=False)
obj:表示为python 对象ensure_ascii: 默认为 True,输出保证将所有输入的非 ASCII 字符转义。如果 ensure_ascii 是 False,这些字符会原样输出。indent:一个非负整数或者字符串,JSON 数组元素和对象成员会被美化输出为该值指定的缩进等级。如果缩进等级为零、负数或者 “”,则只会添加换行符。None(默认值)选择最紧凑的表达。使用一个正整数会让每一层缩进同样数量的空格。如果 indent 是一个字符串(比如 "\t''),那个字符串会被用于缩进每一层。sort_keys:为 True(more 为 False),表示字典的输出会以键的顺序排序。import json
data = {
"name":"张三",
"age":24,
"friends": [{
"name": "李四",
"age": 23
},
{
"name": "王麻子",
"age": 24
}],
"hobby": ["玩游戏","看电影"]
}
res = json.dumps(data,ensure_ascii=False,indent=2, )
print(res, type(res))
打印的结果为
{
"name": "张三",
"age": 24,
"friends": [
{
"name": "李四",
"age": 23
},
{
"name": "王麻子",
"age": 24
}
],
"hobby": [
"玩游戏",
"看电影"
]
} <class 'str'>
json.dump(obj,fb,ensure_ascii=True,indent=None,sort_keys=False)
obj:表示为python对象fb:表示为文本写打开的文件对象import json
data = {
"name":"张三",
"age":24,
"friends": [{
"name": "李四",
"age": 23
},
{
"name": "王麻子",
"age": 24
}],
"hobby": ["玩游戏","看电影"]
}
with open('test1.json', 'w', encoding='utf-8') as f:
json.dump(data, fp=f, ensure_ascii=False, indent=2)
写入的结果为
test1.json
{
"name": "张三",
"age": 24,
"friends": [
{
"name": "李四",
"age": 23
},
{
"name": "王麻子",
"age": 24
}
],
"hobby": [
"玩游戏",
"看电影"
]
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
继承的概念,在程序中,继承描述的是多个类之间的所属关系。如果一个类A里面的属性和方法可以复用,则可以通过继承的方式,传递到类B里。那么类A就是基类,也叫做父类;类B就是派生类,也叫做子类。
本文详细讲解了Python基础之模块,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了Python如何利用opencv实现手势识别,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙可以参考一下
在本文中,我们将一起探索几种从图像中提取颜色、形状和纹理特征的方法,这些方法基于处理图像的经验,感兴趣的小伙伴可以了解一下
验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中。传统的字符型验证安全性已经名存实亡的情况下,各种新型的验证码如雨后春笋般涌现,今天给大家分享一篇Python实现滑块验证码
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008