gpt4 book ai didi

python - 使用 Python 使用特定关键字解析 JSON

转载 作者:太空狗 更新时间:2023-10-30 02:52:15 27 4
gpt4 key购买 nike

我正在尝试解析网站股票的 JSON。

JSON:https://www.ssense.com/en-us/men/sneakers.json

所以我想从用户那里拿一些关键字。然后我想使用这些关键字解析 JSON 以查找商品名称并(在这种特定情况下)返回 ID、SKU 和 URL。

举个例子:如果我输入“Black Fennec”,我想解析 JSON 并找到 Black Fennec 运动鞋的 ID、SKU 和 URL(ID 为 3297299,SKU 为 191422M237006,URL 为/men/product/ps-保罗-史密斯/黑色-fennec-运动鞋/3297299 )

我从来没有尝试过做这样的事情。根据一些展示如何解析 JSON 的指南,我从这个开始:

r = requests.Session()
stock = r.get("https://www.ssense.com/en-us/men/sneakers.json",headers = headers)
obj json_data = json.loads(stock.text)

但是我现在很困惑。如何根据关键字找到产品以及如何获取 ID、Url 和 SKU 或它?

最佳答案

有多种方法可以处理输出。不确定你想用它做什么。但这应该让你继续。

编辑 1:

import requests

r = requests.Session()
obj_json_data = r.get("https://www.ssense.com/en-us/men/sneakers.json").json()

products = obj_json_data['products']


keyword = input('Enter a keyword: ')

for product in products:
if keyword.upper() in product['name'].upper():
name = product['name']
id_var = product['id']
sku = product['sku']
url = product['url']
print ('Product: %s\nID: %s\nSKU: %s\nURL: %s' %(name, id_var, sku, url))
# if you only want to return the first match, uncomment next line
#break

我还设置了将其存储到数据框和/或列表中的设置。只是提供一些使用它的选项。

import requests
import pandas as pd

r = requests.Session()
obj_json_data = r.get("https://www.ssense.com/en-us/men/sneakers.json").json()

products = obj_json_data['products']



keyword = input('Enter a keyword: ')

products_found = []
results = pd.DataFrame()
for product in products:
if keyword.upper() in product['name'].upper():
name = product['name']
id_var = product['id']
sku = product['sku']
url = product['url']
temp_df = pd.DataFrame([[name, id_var, sku, url]], columns=['name','id','sku','url'])
results = results.append(temp_df)
products_found = products_found.append(name)
print ('Product: %s\nID: %s\nSKU: %s\nURL: %s' %(name, id_var, sku, url))

if products_found == []:
print ('Nothing found')

编辑 2:这是另一种方法,将 json 转换为数据框,然后过滤名称中包含关键字的那些行(我认为这实际上是一个更好的解决方案)

import requests
import pandas as pd
from pandas.io.json import json_normalize

r = requests.Session()
obj_json_data = r.get("https://www.ssense.com/en-us/men/sneakers.json").json()

products = obj_json_data['products']
products_df = json_normalize(products)

keyword = input('Enter a keyword: ')

products_found = []
results = pd.DataFrame()

results = products_df[products_df['name'].str.contains(keyword, case = False)]
#print (results[['name', 'id', 'sku', 'url']])

products_found = list(results['name'])
if products_found == []:
print ('Nothing found')
else:
print ('Found: '+ str(products_found))

关于python - 使用 Python 使用特定关键字解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53728417/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com