Python 读取Json文件
在很多情况下,我们需要读取Json文件中的数据,然后将其用于程序中。Python提供了基础的Json解析模块,以及一些便捷的第三方库来完成这个任务。
Python JSON 解析模块
Python 标准库提供了一个Json解析器,它支持解析JSON格式的数据。我们可以使用 json
模块来将Json字符串转换成Python对象,以及将Python对象转换成Json字符串。
Json to Python
下面是一个将Json字符串转换成Python对象的例子。
import json
json_str = '{"name": "John Smith", "age": 30, "city": "New York"}'
python_obj = json.loads(json_str)
print(python_obj)
# Output: {'name': 'John Smith', 'age': 30, 'city': 'New York'}
在上例中,我们使用 json.loads()
方法将Json字符串转换成了Python对象。
Python to Json
下面是一个将Python对象转换成Json字符串的例子。
import json
python_obj = {'name': 'John Smith', 'age': 30, 'city': 'New York'}
json_str = json.dumps(python_obj)
print(json_str)
# Output: {"name": "John Smith", "age": 30, "city": "New York"}
在上例中,我们使用 json.dumps()
方法将Python对象转换成了Json字符串。
Python Json读取文件
我们已经学习了如何将Json字符串转换成Python对象,以及将Python对象转换成Json字符串,那么下面我们来看怎么读取Json文件。
假设我们有一个名为 users.json
的Json文件,包含一些用户数据,具体内容如下:
{
"users": [
{
"id": "10001",
"name": "张三",
"gender": "男",
"age": 20
},
{
"id": "10002",
"name": "李四",
"gender": "女",
"age": 19
},
{
"id": "10003",
"name": "王五",
"gender": "男",
"age": 18
}
]
}
我们可以使用 json.load()
方法来读取Json文件中的数据。下面是一个将Json文件读取成Python对象的例子:
import json
with open('users.json', 'r') as f:
data = json.load(f)
print(data)
输出如下:
{'users': [
{'id': '10001', 'name': '张三', 'gender': '男', 'age': 20},
{'id': '10002', 'name': '李四', 'gender': '女', 'age': 19},
{'id': '10003', 'name': '王五', 'gender': '男', 'age': 18}
]
}
Python Json写入文件
想要写入数据到Json文件也是非常容易的。使用 json.dump()
方法将Python对象写入到Json文件中即可。下面是一个写入Python对象到Json文件的例子:
import json
data = {
'users': [
{'id': '10001', 'name': '张三', 'gender': '男', 'age': 20},
{'id': '10002', 'name': '李四', 'gender': '女', 'age': 19},
{'id': '10003', 'name': '王五', 'gender': '男', 'age': 18}
]
}
with open('users.json', 'w') as f:
json.dump(data, f)
在上例中,我们创建一个包含用户数据的Python对象,并使用 json.dump()
方法将其写入到了 users.json
文件中。
Python 第三方库
在前面的例子中,我们使用了Python标准库的 json
模块来进行Json操作,它提供了基础的Json解析功能。但实际上,使用第三方库进行Json操作更为方便。下面介绍两个常用的第三方库。
1. Pandas
Pandas 是一个用于数据操作和分析的Python库。它可以读取和写入各种数据格式,包括Json文件。使用 Pandas 可以方便地将 Json 数据转换成 DataFrame,然后进行各种数据分析。
下面是一个使用 Pandas 读取 users.json
文件的例子:
import pandas as pd
data = pd.read_json('users.json')
print(data)
输出如下:
users
0 {'id': '10001', 'name': '张三', 'gender': '男'...
1 {'id': '10002', 'name': '李四', 'gender': '女'...
2 {'id': '10003', 'name': '王五', 'gender': '男'...
可以看到,Pandas 将每个 Json 对象转换为 DataFrame 中的一行。
2. Requests
Requests 是一个用于向网站发送 HTTP 请求的Python库。它可以方便地获取网站的 Json 数据,并将其转换成 Python 对象。
下面是一个使用 Requests 获取 Json 数据的例子:
import requests
import json
response = requests.get('https://jsonplaceholder.typicode.com/todos/1')
data = json.loads(response.content)
print(data)
在上例中,我们使用 Requests 向一个网站发送了 HTTP 请求,并获取了一个包含 Json 数据的响应。然后,我们使用 json.loads()
方法将 Json 数据转换成 Python 对象。
结论
Python提供了基础的Json解析模块,以及一些便捷的第三方库来读取和操作Json文件。使用 json
模块可以实现最基本的Json解析操作,而使用 Pandas 和 Requests 等第三方库则可以更方便地进行数据读写和分析。