1、使用 json.loads() 解析JSON字符串
import jsonjson_string = '{"name": "Alice", "age": 25, "city": "Beijing"}'
data = json.loads(json_string)# 获取字符串值
name = data['name']
print("Name:", name) # 输出: Name: Alice
2、使用 requests 库处理HTTP响应
import requestsresponse = requests.get('https://api.example.com/data')
if response.status_code == 200:data = response.json()name = data['name']print("Name:", name)
else:print("Failed to retrieve data")
3、处理嵌套的JSON数据
如果JSON数据是嵌套的,你可以通过连续的键访问来获取深层次的值。
import jsonjson_string = '{"person": {"name": "Alice", "age": 25, "address": {"city": "Beijing", "country": "China"}}}'
data = json.loads(json_string)# 获取嵌套的字符串值
city = data['person']['address']['city']
print("City:", city) # 输出: City: Beijing
4、使用 .get() 方法安全地获取值
为了防止因为键不存在而引发的KeyError异常,可以使用字典的.get()方法。如果指定的键不存在,.get()方法会返回None或者你提供的默认值。
import jsonjson_string = '{"name": "Alice", "age": 25}'
data = json.loads(json_string)# 安全地获取值
city = data.get('city', 'Unknown')
print("City:", city) # 输出: City: Unknown
5、遍历JSON数组
如果JSON数据包含数组,你可以遍历数组来处理每个元素
import jsonjson_string = '{"names": ["Alice", "Bob", "Charlie"]}'
data = json.loads(json_string)# 遍历数组
for name in data['names']:print(name)
# 输出:
# Alice
# Bob
# Charlie
6、使用列表推导式简化遍历
对于遍历数组的操作,可以使用列表推导式来简化代码。
import jsonjson_string = '{"names": ["Alice", "Bob", "Charlie"]}'
data = json.loads(json_string)# 使用列表推导式
names = [name for name in data['names']]
print(names) # 输出: ['Alice', 'Bob', 'Charlie']
7、处理JSON中的特殊字符
如果JSON字符串中包含特殊字符(如转义字符),json.loads()会自动处理这些字符。
import jsonjson_string = '{"message": "Hello, \\"World\\"!"}'
data = json.loads(json_string)# 获取包含特殊字符的字符串
message = data['message']
print(message) # 输出: Hello, "World"!
8、处理JSON中的日期和时间
如果JSON数据中包含日期和时间,可以使用datetime模块来解析和处理这些值。
import json
from datetime import datetimejson_string = '{"date": "2023-10-01T12:00:00Z"}'
data = json.loads(json_string)# 解析日期时间
date = datetime.fromisoformat(data['date'].replace("Z", "+00:00"))
print("Date:", date) # 输出: Date: 2023-10-01 12:00:00+00:00
9、格式化JSON数据
import json# 未格式化的JSON字符串
json_str = '{"name":"John","age":30,"city":"New York"}'# 将字符串解析为JSON对象
json_obj = json.loads(json_str)# 使用indent参数来设置缩进,使输出更加美观
formatted_json_str = json.dumps(json_obj, indent=4)print(formatted_json_str)展示样式:
{"name": "John","age": 30,"city": "New York"
}