Python3怎么解析JSON数据_Python3JSON数据解析与处理方法详解

Python3怎么解析JSON数据_Python3JSON数据解析与处理方法详解
最新回答
念颜洛

2021-09-16 12:26:41

Python3提供了内置的json模块来处理JSON数据,包括解析字符串、读取文件、处理嵌套结构、异常捕获以及序列化操作。以下是详细的方法说明:

一、解析JSON字符串

使用json.loads()将JSON格式的字符串转换为Python对象(字典或列表)。

import json# 示例JSON字符串data = '{"name": "Alice", "age": 25}'# 解析为字典result = json.loads(data)print(result['name']) # 输出: Alice二、读取JSON文件

使用json.load()直接从文件中解析JSON数据。

import json# 从文件读取with open('data.json', 'r', encoding='utf-8') as f: result = json.load(f)# 操作解析后的数据print(result)三、处理嵌套结构

通过递归或逐层访问提取嵌套数据。

data = '''{ "users": [ { "name": "Bob", "address": {"city": "Beijing"} } ]}'''result = json.loads(data)# 访问嵌套字段city = result['users'][0]['address']['city']print(city) # 输出: Beijing四、异常处理

捕获JSONDecodeError以处理格式错误。

import jsoninvalid_data = '{"name": "Alice", "age": }' # 缺少值的错误JSONtry: result = json.loads(invalid_data)except json.JSONDecodeError as e: print(f"解析失败: {e}") # 输出错误信息五、序列化为JSON

使用json.dumps()或json.dump()将Python对象转为JSON格式。

import jsondata = {"name": "张三", "age": 30}# 转为JSON字符串(支持中文)json_str = json.dumps(data, ensure_ascii=False, indent=4)print(json_str)# 写入文件with open('output.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4)关键点总结
  1. 字符串解析:json.loads()处理内存中的JSON字符串。
  2. 文件读取:json.load()直接解析文件对象。
  3. 嵌套访问:通过字典键或列表索引逐层提取数据。
  4. 异常处理:用try-except捕获JSONDecodeError。
  5. 序列化:ensure_ascii=False确保中文字符正常显示,indent参数美化输出。

通过以上方法,可以高效完成JSON数据的解析与生成,适用于API响应处理、配置文件读取等场景。