Python JSON API parsing



我正试图弄清楚如何解析价格数据并获得每个子模型的平均价格。我可以提出请求并获得特定的数据,但是您如何获得特定模型的总和呢?

"Toy X":{
"toy a":{
"submodel": "dx"
"price": 2,
}
"toy b":{
"submodel": "ed"
"price": 5,
}

基本上按子模型分组玩具,然后返回每个子模型的平均价格。

当前代码:

response_API = request.get("toysforyou")
def _get_sub_group(query_url):
# print(response_API.status_code)
data = response_API.text
# convert and decode the data into proper JSON format below
parse_json = json.loads(data)
# get all the toys of the same subclass
group_subs = parse_json["toy x"]["submodel"]["price"]
res = defaultdict(list)
for i in group_subs:
res[i["submodel"]].append(float(i["price"]))
res = {k: mean(v) for k, v in res.items()}

假设您只需要查看"Toy X",您可以遍历字典中的值,如下所示。

from statistics import mean
from collections import defaultdict
def get_mean_price_by_submodel(data):
r = defaultdict(list)
for v in data.values():
r[v["submodel"]].append(v["price"])
return {k: mean(v) for k, v in r}
data = request.get("toysforyou").json()
print(prices_by_submodel(data["Toy X"]))

最好分别请求和解析JSON(这可以在一行data = request.get("toysforyou").json()中完成),并仅将所需的字典发送给函数。

或者,将JSON转换为pandas数据框架,特别是在进行大量数据操作和分析时。

import pandas as pd
df = pd.DataFrame.from_dict(data["Toy X"], orient="index")
print(df.groupby("submodel").mean("price"))

最新更新