Python解析json代码实例解析

  • Post category:Python

标题

Python解析json代码实例解析

摘要

本文将详细介绍Python中解析json数据的代码实例,包括json数据格式的概述、使用json解析器将json数据解析为Python对象、将Python对象转换为json数据等。

正文

1. json数据格式简介

json(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于JavaScript语言中的对象表示法创建的,因此,json数据和JavaScript对象之间有着很好的互操作性。json
数据中包含两种数据结构:键值对和数组。

键值对的形式如下:

{
    "name": "张三",
    "age": 20,
    "gender": "男"
}

其中,nameagegender是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数据等。