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)关键点总结通过以上方法,可以高效完成JSON数据的解析与生成,适用于API响应处理、配置文件读取等场景。