[英]How return only object contain string from XML/JSON URL
If there anyone can help me get only string i need from parsing URL:如果有人可以帮助我从解析 URL 中只获取我需要的字符串:
import requests
import json
def get_stock(sku):
params = {'ItemId': sku}
base_url = 'http://10.0.0.25/api/GetSku?ItemId='
response = requests.get(base_url, params=params)
json_parsed = json.loads(response.read)
return json_parsed
print(get_stock(101025HRLONDON))
The output is:输出是:
[
{
"ItemId": "101025HRLONDON",
"Site": "12",
"Warehouse": "17",
"availablePhysical": 1.0
},
{
"ItemId": "101025HRLONDON",
"Site": "33",
"Warehouse": "33",
"availablePhysical": 1.0
},
{
"ItemId": "101025HRLONDON",
"Site": "12",
"Warehouse": "34",
"availablePhysical": 1.0
},
{
"ItemId": "101025HRLONDON",
"Site": "77",
"Warehouse": "42",
"availablePhysical": 1.0
}
]
The code works well and returns all products stock by ItemID.该代码运行良好,并按 ItemID 返回所有产品库存。
But my question is how I can return an only object that contains : "Site":"12"
但我的问题是如何返回包含以下内容的唯一对象:
"Site":"12"
Thank you!谢谢!
Replace:代替:
return json_parsed
By:经过:
if any(i['Site'] == '12' for i in json_parsed):
return json_parsed
You can filter
the list using the key you want.您可以使用所需的键
filter
列表。 The function you've written is correct, you only need to manipulate the returned data.你写的函数是正确的,你只需要操作返回的数据。
filtered_stocks = list(filter(lambda x: x['Site']=="12", get_stock("101025HRLONDON"))
print(filtered_stocks)
something like the below类似下面的东西
import requests
from typing import List,Dict
def get_stock(sku:str,site_id:str)-> List[Dict]:
base_url = 'http://10.0.0.25/api/GetSku?ItemId='
response = requests.get(base_url, params={'ItemId': sku})
if response.status_code == 200:
return [item for item in response.json() if item['Site'] == site_id]
else:
return None
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.