Python如何将API抓取返回的JSON数据转换为指定纯文本格式打印输出
解决方案
你不需要将返回的JSON数据序列化为格式化字符串输出,直接从接口返回的JSON结构中提取对应字段,按你需要的格式打印即可,修改后的完整代码如下:
import json import requests from colorama import Fore, Style # 获取用户输入的产品ID get_data = input(Fore.LIGHTRED_EX + "请输入要查询库存的产品ID: ") beep = requests.get("https://api.mywebsite.co.uk/shop/api/productsStock/" + get_data) # 解析返回的JSON数据 res_data = beep.json() # 提取payload数组里的第一个产品数据 product_info = res_data["payload"][0] # 按要求格式打印 print(f"产品ID: {product_info['productId']}") print(f"实际库存: {product_info['quantityPhysical']}") print(f"可用库存: {product_info['quantityAvailable']}")
改动说明
- 把原来调用
json.dumps序列化整个响应的逻辑替换为直接解析响应JSON提取字段 - 接口返回的
payload是数组结构,取第一个元素即可得到目标产品的所有库存信息 - 用f-string按你需要的格式拼接字段输出即可
可选优化
你可以增加简单的异常校验,避免接口返回结构异常导致报错:
# 解析返回的JSON数据 res_data = beep.json() if res_data.get("payload") and len(res_data["payload"]) > 0: product_info = res_data["payload"][0] # 按要求格式打印 print(f"产品ID: {product_info['productId']}") print(f"实际库存: {product_info['quantityPhysical']}") print(f"可用库存: {product_info['quantityAvailable']}") else: print("未查询到对应产品的库存信息")
内容的提问来源于stack exchange,提问作者cosmokid
相关产品推荐
相关产品推荐

