Python 解析 JSON 数据

打印 上一主题 下一主题

主题 671|帖子 671|积分 2013

1、有如下 JSON 数据,存放在 data.json 文件:

  1. [{"id":1, "name": "小王", "gender": "male", "score": 96.8},
  2. {"id":2, "name": "小婷", "gender": "female", "score": 95.5},
  3. {"id":3, "name": "小崔", "gender": "male", "score": 80.5}]
复制代码
2、写一个 python 脚本(test1.py)解析这个文件:

  1. # 导入 python 内置的 json 模块
  2. import json
  3. # 读取 JSON 文件
  4. input_path = r"C:\Users\Administrator\Desktop\py\study\data.json"
  5. # 解析完的 JSON 数据存放的输出文件
  6. output_path = r"C:\Users\Administrator\Desktop\py\study\result.txt"
  7. # 以只读(r:read)的方式打开 输入文件
  8. with open(input_path, 'r', encoding='utf-8') as file:
  9.     # 将 JSON 数据加载到变量 data 中
  10.     data = json.load(file)
  11. # 以追加 (a:append) 的方式打开 输出文件
  12. output_file=open(output_path, 'a', encoding='utf-8')
  13. # 如果 JSON 数据是一个列表,可以遍历列表中的元素
  14. if isinstance(data, list):
  15.        # enumerate 函数可以方便地同时获取索引(i)和元素值(item)
  16.        for i, item in enumerate(data):
  17.              # \n 转义字符,换行的意思 i 是个数字,需要用 str() 函数转换为字符串类型
  18.              # 打印在屏幕
  19.              print('\n'+str(i+1)+'、'+item['name']+'的个人资料')
  20.              # 输出在文件
  21.              output_file.write('\n'+str(i+1)+'、'+item['name']+'的个人资料')
  22.              output_file.write('\n 性别:'+item['gender'])
  23.              output_file.write('\n 得分:'+str(item['score']))
  24. # 关闭文件,防止资源泄露
  25. output_file.close()
复制代码
3、在脚本所在路径,打开 powershell.exe,运行这个脚本:


result.txt 输出数据如下:


像这种简单的脚本程序,现在都可以叫 AI (比如豆包) 帮我们写:


4、扩展:

字符串前面加 r 是什么意思?
r/R  字符串前面加大R大概小r,是原始字符串。所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。
我们知道,\  反斜杠在python中是转义字符,比如 \n 就是 换行。转换了原来 n 字符的原始意思,变为 换行。
  1. print('n')
  2. 输出   n
  3. print('\n')
  4. 输出换行
复制代码

而 window 系统中,磁盘路径,又都是用 \ 反斜杠表示的,

如果直接把它作为文件路径,python 会报错:

有两种解决方式:
1)\\   两个反斜杠,字面意思,以 \ 转义掉原来 \ 转义的含义,变为输出 \

但这毕竟比较麻烦,以是有第二种方法
2)在字符串前面加 r,忽略掉字符串里面 \ 的转义含义,让它原样输出 \

5、应用

python 解析 JSON 文件的应用很广泛,就比如,可以用来解析,抓包软件 Charles 的 session 文件。 
Python 解析 Charles JSON Session File (.chlsj)-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

飞不高

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表