python中json格式处理和字典的关系

作者:流花飞羽8 时间:2021-04-10 04:35:12 

前言:作为测试工程师都知道,json格式的文件使我们常用的一种数据存放形式,那么对于python文件的处理,python语言有着得天独厚的条件,json的本质是键值对形式存储的,这就非常像python语言中的字典,所以有很多字典形式的函数与方法,是直接可以使用的。

今天我们先讲一下编写python脚本处理json的核心功能,有些散乱,后期在进行整体脚本的编写。

1、json文件读取后的操作

json文件读取后的操作和字典的操作一样,可以将dict中相关的内置方法都继承过来,但是json文件中会有list形式和dict形式的混合存在。

此时要注意区分。

json文件数据结构走的是dict的结构,键值对

(1)修改值非常方便,

json["id"]=3001

(2)修改键就麻烦一点。

dict字典没有直接修改键的概念与方法,

修改键:先把原有的键值对删除,在添加新的键值对,注意获取旧键值对的value,传递给新的键值对的value

获取value:value=json['request']["session_id"]

删除键值对:json['request'].pop("session_id")

新增键值对:json['request'].setdefault("operation_id",value)

2、python递归路径文件夹中的所有文件

def jsonfilePath_read(inputfilePath, outfilepath):
   rightCount = 0
   errorCount = 0
   for file in os.listdir(inputfilePath):
       try:
           print(file)
           read_jsonfile_change2(str(inputfilePath + '/' + file), outfilepath + '/' + file)
           print(file + '修改成功')
           rightCount += 1
       except:
           print(file + '文件有误修改失败')
           errorCount += 1

print('文件修改完成 ', rightCount, '个文件成功', errorCount, '个文件有误')

解说核心代码:

核心代码:
for file in os.listdir(inputfilePath):
   #file就是当前路径中的所有文件名,使用的时候别忘了路径+'/' + file
   try:
       ....inputfilePath + '/' + file
   except:
       print().....

3、json文件的读取与写入新文件

读一遍写一遍可以实现json的格式化,解决json在txt文件中是单行显示的问题。

# 读取文件
with open('file/test.json', 'r', encoding='utf8') as f:
   json_data = json.load(f)
jsondict = json_data

# 写入新文件
with open('outfile/test.json', 'w', encoding='utf8') as r:
   json.dump(jsondict, r, ensure_ascii=False, indent=4)
print('新文件生成完成')

核心点说明:

读取、写入encoding='utf8' 防止编码问题 indent=4,好像是空4个格,美观输出

来源:https://blog.csdn.net/u013521274/article/details/125119342

标签:python,json,格式,字典
0
投稿

猜你喜欢

  • python随机生成大小写字母数字混合密码(仅20行代码)

    2021-04-03 23:28:47
  • 自己搭建resnet18网络并加载torchvision自带权重的操作

    2021-11-28 12:24:33
  • 在python中利用GDAL对tif文件进行读写的方法

    2022-03-25 08:08:07
  • redis数据库及与python交互用法简单示例

    2024-01-18 03:05:06
  • python神经网络编程之手写数字识别

    2022-01-12 20:50:04
  • Go语言设计模式之实现观察者模式解决代码臃肿

    2024-05-25 15:11:17
  • python神经网络Batch Normalization底层原理详解

    2021-01-28 12:50:08
  • 十个节省时间的MySQL命令小结

    2024-01-13 07:18:14
  • SQL 新增/修改 表字段列的类型等

    2024-01-20 01:20:59
  • 基于Python实现帕累托图的示例详解

    2022-06-28 05:48:00
  • JavaScript利用时间分片实现高性能渲染数据详解

    2024-04-29 13:24:26
  • Python Pillow Image Invert

    2023-10-02 12:33:30
  • Python机器视觉之基于OpenCV的手势检测

    2021-06-12 10:54:11
  • 深入了解Golang官方container/heap用法

    2024-05-13 10:44:42
  • 详解Python中的__new__()方法的使用

    2022-09-26 09:03:56
  • python实战之实现excel读取、统计、写入的示例讲解

    2022-02-12 17:42:15
  • Python Matplotlib库入门指南

    2022-04-27 11:51:01
  • sql server vs10安装之后一些列问题

    2012-01-05 19:22:41
  • 在SQL 2005中实现循环每一行做一定的操作

    2009-03-05 14:57:00
  • python使用Flask框架获取用户IP地址的方法

    2023-08-09 03:15:23
  • asp之家 网络编程 m.aspxhome.com