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

如何根据指定rate范围从API返回数据中提取指定字段?

问题:提取API返回数据中符合特定rate范围的字段

API返回的数据格式如下:

[
  {"rate":2.5,"price":123,"userAsset":{"userId":123,"userAssetId":123,"asset":{"assetId":"notrelevant"}},"isBeingPurchased":"notrelevant"},
  {"rate":1.5,"price":456,"userAsset":{"userId":456,"userAssetId":456,"asset":{"assetId":"notrelevant"}},"isBeingPurchased":"notrelevant"}
]

需求:提取rate值在0.1到2之间的条目,获取其中的userId、userAssetId和price字段。

用户尝试的代码(无法正确过滤数据):

import numpy as np
import requests
# Get the info from the API
r = requests.get('https://myapi.com/shop')
# Convert the info to a dictionary
data = r.json()

# Get the rates from the dictionary

for value in data:
    rates = print(value['rate'])
    print(rates)

    # Get the info needed later for certain items with a specific rate
    for rates in np.arange(0.1, 2):
        user_asset_id = value['userAsset']['userAssetId']
        user_id = value['userAsset']['userId']
        relative_price = value['price']
        print(user_asset_id, user_id, relative_price)

错误原因

  • 内层循环for rates in np.arange(0.1, 2)逻辑错误:这是在遍历0.1到2之间的一系列数值,而非判断当前条目的rate是否落在这个区间里,导致每个条目都会被循环多次并输出数据。
  • rates = print(value['rate'])无实际作用:print()函数返回None,这个赋值操作对后续逻辑没有帮助。

修正后的代码

不需要引入numpy,直接用条件判断过滤即可:

import requests

# 获取API数据
r = requests.get('https://myapi.com/shop')
data = r.json()

# 遍历并过滤符合条件的条目
for item in data:
    rate = item['rate']
    # 判断rate是否在目标范围内(包含边界值)
    if 0.1 <= rate <= 2:
        user_id = item['userAsset']['userId']
        user_asset_id = item['userAsset']['userAssetId']
        price = item['price']
        print(user_asset_id, user_id, price)

如果需要将结果保存为列表(方便后续处理),可以这样写:

import requests

r = requests.get('https://myapi.com/shop')
data = r.json()

filtered_items = []
for item in data:
    rate = item['rate']
    if 0.1 <= rate <= 2:
        filtered_items.append({
            'userId': item['userAsset']['userId'],
            'userAssetId': item['userAsset']['userAssetId'],
            'price': item['price']
        })

# 输出结果
for item in filtered_items:
    print(item['userAssetId'], item['userId'], item['price'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:05:27