自学内容网 自学内容网

Python获取json返回的字符串获取方法大全

1、使用 json.loads() 解析JSON字符串

import json

json_string = '{"name": "Alice", "age": 25, "city": "Beijing"}'
data = json.loads(json_string)

# 获取字符串值
name = data['name']
print("Name:", name)  # 输出: Name: Alice

2、使用 requests 库处理HTTP响应

import requests

response = 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 json

json_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 json

json_string = '{"name": "Alice", "age": 25}'
data = json.loads(json_string)

# 安全地获取值
city = data.get('city', 'Unknown')
print("City:", city)  # 输出: City: Unknown

5、遍历JSON数组
如果JSON数据包含数组,你可以遍历数组来处理每个元素

import json

json_string = '{"names": ["Alice", "Bob", "Charlie"]}'
data = json.loads(json_string)

# 遍历数组
for name in data['names']:
    print(name)
# 输出:
# Alice
# Bob
# Charlie

6、使用列表推导式简化遍历
对于遍历数组的操作,可以使用列表推导式来简化代码。

import json

json_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 json

json_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 datetime

json_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"
}


原文地址:https://blog.csdn.net/vlking/article/details/142771374

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!