标题
Python解析json代码实例解析
摘要
本文将详细介绍Python中解析json数据的代码实例,包括json数据格式的概述、使用json解析器将json数据解析为Python对象、将Python对象转换为json数据等。
正文
1. json数据格式简介
json(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于JavaScript语言中的对象表示法创建的,因此,json数据和JavaScript对象之间有着很好的互操作性。json
数据中包含两种数据结构:键值对和数组。
键值对的形式如下:
{
"name": "张三",
"age": 20,
"gender": "男"
}
其中,name
、age
和gender
是key,"张三"
、20
和"男"
是value。json数据中的key要加双引号,value可以是字符串、数值、布尔值、null、对象或数组。
数组的形式如下:
[
"张三",
20,
"男"
]
2. 使用json解析器将json数据解析为Python对象
json
模块提供了loads()
方法,可以将json字符串解析为Python对象(如字典或列表等)。示例如下:
import json
data = '{"name": "张三", "age": 20, "gender": "男"}'
json_data = json.loads(data)
print(json_data)
输出结果:
{'name': '张三', 'age': 20, 'gender': '男'}
3. 将Python对象转换为json数据
json
模块还提供了dumps()
方法,可以将Python对象(如字典或列表等)转换为json字符串。示例如下:
import json
data = {"name": "张三", "age": 20, "gender": "男"}
json_data = json.dumps(data)
print(json_data)
输出结果:
{"name": "\u5f20\u4e09", "age": 20, "gender": "\u7537"}
需要注意的是,使用dumps()
方法转换为json字符串后,中文字符串会自动转为unicode编码,需要加上ensure_ascii=False
参数才能输出中文。示例如下:
import json
data = {"name": "张三", "age": 20, "gender": "男"}
json_data = json.dumps(data, ensure_ascii=False)
print(json_data)
输出结果:
{
"name": "张三",
"age": 20,
"gender": "男"
}
4. 示例说明
4.1 将json文件读取为Python对象
import json
with open('student.json', 'r') as f:
json_data = json.load(f)
print(json_data)
其中,student.json
为以下json格式文件:
{
"name": "张三",
"age": 20,
"gender": "男",
"score": {
"math": 90,
"english": 80,
"chinese": 70
}
}
输出结果:
{'name': '张三', 'age': 20, 'gender': '男', 'score': {'math': 90, 'english': 80, 'chinese': 70}}
4.2 将Python对象转换为json格式并写入文件
import json
data = {"name": "张三", "age": 20, "gender": "男"}
with open('student.json', 'w') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
其中,将Python字典对象转换为json格式调用dump()
函数,输出indent=4,表示json数据的缩进格式为4个空格。
输出结果:
{
"name": "张三",
"age": 20,
"gender": "男"
}
结论
以上是Python解析json代码实例解析的完整攻略,通过本文的讲解,可以对Python中解析json数据的相关知识有更深入的了解,包括json数据格式的概述、使用json解析器将json数据解析为Python对象、将Python对象转换为json数据等。