You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python解析XML/JSON接口返回值如何筛选仅含Site为12的对象

解决方案

以下是修改后可直接运行的代码,同时修复了原代码的潜在问题并实现了过滤需求:

import requests 
import json

def get_stock(sku):
    params = {'ItemId': sku}
    base_url = 'http://10.0.0.25/api/GetSku'
    response = requests.get(base_url, params=params)
    json_parsed = json.loads(response.text)
    # 过滤仅保留Site为12的条目
    filtered_result = [item for item in json_parsed if item.get('Site') == '12']
    return filtered_result

# sku为字符串类型,需用引号包裹
print(get_stock('101025HRLONDON'))

修改说明

  • 修复原代码两处逻辑/语法问题:
    • 将response.read替换为response.text,requests库的响应对象需通过text属性读取返回的文本内容
    • 移除了base_url末尾多余的?ItemId=,参数会通过params自动拼接,避免重复传参
    • 调用函数时给sku参数添加了引号,字符串类型参数不包裹引号会触发语法错误
  • 新增的过滤逻辑用列表推导式遍历返回的JSON数组,匹配Site字段值为"12"的对象。如果确认符合条件的结果最多只有一条,也可以将返回值改为return filtered_result[0] if filtered_result else {},直接返回单个字典同时处理无匹配结果的异常场景。

输出结果

运行后将返回符合要求的数据:

[
    {
        "ItemId": "101025HRLONDON",
        "Site": "12",
        "Warehouse": "17",
        "availablePhysical": 1.0
    },
    {
        "ItemId": "101025HRLONDON",
        "Site": "12",
        "Warehouse": "34",
        "availablePhysical": 1.0
    }
]

内容的提问来源于stack exchange,提问作者Ghazi Mohammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:18:01