经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
python中json格式处理和字典的关系
来源:jb51  时间:2022/6/6 15:45:44  对本文有异议

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

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

1、json文件读取后的操作

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

此时要注意区分。

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

(1)修改值非常方便,

json["id"]=3001

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

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

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

  1. 获取valuevalue=json['request']["session_id"]
  2. 删除键值对:json['request'].pop("session_id")
  3. 新增键值对:json['request'].setdefault("operation_id",value)

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

  1. def jsonfilePath_read(inputfilePath, outfilepath):
  2. rightCount = 0
  3. errorCount = 0
  4. for file in os.listdir(inputfilePath):
  5. try:
  6. print(file)
  7. read_jsonfile_change2(str(inputfilePath + '/' + file), outfilepath + '/' + file)
  8. print(file + '修改成功')
  9. rightCount += 1
  10. except:
  11. print(file + '文件有误修改失败')
  12. errorCount += 1
  13. print('文件修改完成 ', rightCount, '个文件成功', errorCount, '个文件有误')

解说核心代码:

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

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

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

  1. # 读取文件
  2. with open('file/test.json', 'r', encoding='utf8') as f:
  3. json_data = json.load(f)
  4. jsondict = json_data
  5. # 写入新文件
  6. with open('outfile/test.json', 'w', encoding='utf8') as r:
  7. json.dump(jsondict, r, ensure_ascii=False, indent=4)
  8. print('新文件生成完成')

核心点说明:

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

到此这篇关于python中json格式处理和字典的关系的文章就介绍到这了,更多相关python json字典关系内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号