在Python中,如果JSON的key是中文或者数字,我们可以直接使用key来取值。如果我们有一个JSON对象
json_obj = {"name": "张三", "age": 30},我们可以使用json_obj["name"]来获取"张三",使用json_obj["age"]来获取30。在处理JSON数据时,我们经常需要根据键(key)来获取对应的值,无论是中文还是数字作为键,取值的方式都是相同的,下面我将详细介绍如何使用Python语言来从JSON对象中提取值。

(图片来源网络,侵删)
1. 使用Python内置的json模块
我们需要导入Python的json模块,我们可以使用json.loads()函数将JSON字符串转换为Python字典,之后,我们就可以像操作普通字典一样通过键来访问对应的值。
import json
JSON字符串示例
json_str = '{"name": "张三", "age": 30, "city": "北京"}'
将JSON字符串转换为字典
data = json.loads(json_str)
通过键访问值
name = data["name"]
age = data["age"]
city = data["city"]
print("姓名:", name)
print("年龄:", age)
print("城市:", city)
2. 使用第三方库如requests和pandas
如果你正在处理来自网络的JSON数据,可以使用requests库来发送HTTP请求并接收响应,如果响应的内容是JSON格式,你可以使用response.json()方法将其转换为Python字典。
import requests
发送GET请求并获取JSON响应
url = "https://api.example.com/data"
response = requests.get(url)
将JSON响应转换为字典
data = response.json()
通过键访问值
name = data["name"]
age = data["age"]
city = data["city"]
print("姓名:", name)
print("年龄:", age)
print("城市:", city)
对于大型数据集或复杂的JSON结构,还可以使用pandas库来更方便地处理和分析数据。pandas提供了read_json()函数可以直接将JSON数据转换为DataFrame对象。

(图片来源网络,侵删)
import pandas as pd
JSON字符串示例
json_str = '[{"name": "张三", "age": 30, "city": "北京"}, {"name": "李四", "age": 25, "city": "上海"}]'
将JSON字符串转换为DataFrame
df = pd.read_json(json_str)
通过列名访问值
names = df["name"]
ages = df["age"]
cities = df["city"]
print("姓名:", names)
print("年龄:", ages)
print("城市:", cities)
相关问题与解答:
问题1:如何处理嵌套的JSON数据?
解答1: 当JSON数据包含嵌套的结构时,可以通过多次使用键来访问嵌套的值,假设有以下JSON数据:
{
"person": {
"name": "张三",
"age": 30,
"address": {
"city": "北京",
"street": "朝阳路"
}
}
}
要访问城市名称,可以这样写:
city = data["person"]["address"]["city"]
print("城市:", city)
问题2:如何修改JSON中的值?

(图片来源网络,侵删)
解答2: 由于JSON数据在Python中通常被表示为字典或列表,因此你可以直接修改它们,要将上面例子中的城市改为"上海",可以这样做:
data["person"]["address"]["city"] = "上海"
完成修改后,你可以再次使用json.dumps()函数将字典转换回JSON字符串,或者直接使用response.json()或pd.to_json()等方法进行序列化。