Python + json关键字驱动
2023-04-18 15:42:06 时间
一、json文件的编写格式规范
字典格式就用{},多个对象就用[]
# 单个对象
{ "name": "小明",
"age": 18,
"isMen": true,
"like": ["唱歌","跳舞","rap","篮球"],
"address": {
"country": "中国",
"city": "上海"
}
}
# 多个对象
[
{
"name": "小明",
"age": 18,
"isMen": true,
"like": [
"唱歌",
"跳舞",
"rap",
"篮球"
],
"address": {
"country": "中国",
"city": "上海"
}
},
{
"name": "小红",
"age": 19,
"isMen": false,
"like": [
"吃饭",
"睡觉",
"打豆豆"
],
"address": {
"country": "中国",
"city": "北京"
}
]
二、json文件的读取与写入
json文件以字符串的格式读取出来:
# with open方式
with open("111.json",'r',encoding='utf-8') as f:
params = f.read()
print(type(params)) # str
# json.dumps方式
params = json.dumps("111.json")
print(type(params)) # str
json文件以原格式(字典或列表)的形式读取出来
with open(111.json,'r',encoding='utf-8') as f:
params = json.load(f)
print(type(params)) # list or dict
即json文件内部是什么类型就以什么类型读取出来
json.load(param):读取json文件数据
json.dump(param):将数据写入json文件
json对象–>字符串str :json.dumps(params)
json.dumps(param) 是将json数据对象转换为文本字符串的函数,其函数名是dump string 的缩写,意思是输出字符串,其参数param必须要是json对象
字符串str–>json对象: json.loads(params)
json.loads(param) 是将文本字符串转换为json对象的函数,其函数名是load string 的缩写,意思是加载字符串。
json文件的修改
简单案例:
# 111.json文件内容
{
"name":"张三"
"age":18
}
import json
# 获取json里面数据
def read_json_data():
with open('111.json', 'r') as f:
params = json.load(f) # 加载json文件
params["name"] = "李四" # 修改字段值
print("params", params) # 打印
return params
# 写入json文件
def write_json_data(params):
#其中路径如果和读json方法中的名称不一致,会重新创建一个名称为该方法中写的文件名
with open('111.json', 'w') as f:
# 将dict写入名称为r的文件中
json.dump(params, r)
# 调用两个函数,更新内容
data = get_json_data() # 修改后的数据
write_json_data(data) # 将修改后的数据写入json文件中(w模式会覆盖啊之前的数据)
eg:批量修改json文件某个字段的值
def read_json(json_file):
with open(json_file,'r',encoding='utf-8') as f:
list = json.load(f)
a = 0 # 用于定位当前遍历位置
for dict in list:
a = a+1 # 每遍历一次就加1
# print(dict)
# 第一层的语文字段值修改
for m,n in dict.items():
if m == '语文':
list[a-1]['语文'] = '100'
# 第二层级语文字段值修改
elif m == 'exam_result':
for i in n:
if i == '语文':
list[a - 1]['exam_result']['语文'] = '100'
return list
def write_json(json_file,list):
with open(json_file,'w',encoding='utf-8') as f:
json.dump(list,f,ensure_ascii=False)
# ensure_ascii=False防止出现中文乱码
# 调用上面两个函数
json_data = read_json('111.json')
write_json('111.json',json_data)
相关文章
- 直接在代码里面对list集合进行分页
- .NET Framework 4.5新特性详解
- 大数据的简要介绍
- 大数据的由来
- 高斯混合模型的自然梯度变量推理
- timing-wheel 仿Kafka实现的时间轮算法
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!