详细解读python操作json文件的详细
作者:哆啦A梦__- 发布时间:2021-01-31 10:41:42
目录
json支持的格式:
代码操作
1.json转化为python
2. python序列化为json
总结
json转化为python表示反序列化
python转化为json表示为序列化
json是python的内置模块,不需要安装
json支持的格式:
Json | Python |
对象(object) | 字典(dict) |
数组(array) | 列表(list) |
字符串(string) | 字符串(str) |
整数(int) | 整数(int) |
实数(float) | 实数(float) |
true | True |
false | False |
null | None |
代码操作
1.json转化为python
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']
2. python序列化为json
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": [
"玩游戏",
"看电影"
]
}
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
来源:https://blog.csdn.net/qq_37846872/article/details/121756153


猜你喜欢
- 于断电或非正常关机而导致MySQL(和PHP搭配之最佳组合)数据库出现错误是非常常见的问题。有两种方法,一种方法使用MySQL(和PHP搭配
- scrapy是一个基于Twisted的异步处理框架,可扩展性很强。优点此处不再一一赘述。下面介绍一些概念性知识,帮助大家理解scrapy。一
- 使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就
- 为了使一个MySQL系统安全,强烈要求你考虑下列建议……当你连接一个MySQL服务器时,你通常应
- 如下所示:'''Created on 2018-4-20例子:每天凌晨3点执行func方法''
- 上个月就打算开发个还算好玩的项目,但是一直没时间。这篇是此项目用到的一部分,处理好此部分基本还差通信等方面的了。首先模拟鼠标键盘按下释放的动
- 哈喽!我的朋友们,最近有一个新项目。所以一直没更新!有没有想我啊!!今天咱们来说一下JS原生轮播图!话不多说:直接来代码吧:下面是CSS部分
- 1. 简介在一些研究领域很多经典算法和工具都由上古语言Fortran编写,而这部分代码又没有对应的C/C++和Python版本。因此,掌握P
- 效果图:代码如下:<!DOCTYPE html><html lang="en"><head
- 前言requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快。但是requests发送请求是串行的,即阻
- 通常情况睛,SQLServer2000正在使用的数据库(有数据库连接),是不能删除或被恢复的,可以将数据库设置为单用户模式,即可删除: AL
- 大家都见过某网页中的恶意广告,你关闭了又出来了!为何,JS来告诉你HTML<body> <h3 class=&
- 在我的使用SQL Server2005的新函数构造分页存储过程中,我提到了使用ROW_NUMBER()函数来代替top实现分页存储过程。 但
- 认为整理的还比较详细的,亲们,就快点收藏起来吧!PHP系统类函数assert函数:检查assertion声明是否错误extension_lo
- 本次,我们来看看索引、提交频率对InnoDB表写入速度的影响,了解有哪些需要注意的。先直接说几个结论吧:1、关于索引对写入速度的影响:a、如
- 一、tooltip(提示框) 源码文件: Tooltip.jsTooltip.scss实现原理: 1、获取当前
- MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。MyISAM是My
- 如何制作一个搜索引擎链接程序?多收集几个网站的,然后我们引用它到自己的页面中。接下来,我们要创建页面用于搜索:<center>&
- 前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图