【发布时间】:2020-05-28 15:41:20
【问题描述】:
所以我试图从 API 返回一个浮点值,它位于: products => product_name => sell/buy_summary => pricePerUnit
并且可以在这个 API 中找到: https://api.hypixel.net/skyblock/bazaar?key=73ac0a44-4c41-4933-a9ee-b4095be2b6d2
当我将它返回到我的 HTML 时,我收到错误“TypeError:列表索引必须是整数或切片,而不是 str”,我搜索了一下,也看到了 Stackoverflow 上的另一个线程,但没有让它工作。我有另一种方法来获取完全正常的值,但问题是我需要将这些值保存到变量中,通过它运行脚本来计算利润/利润。
这是我当前的代码:
@app.route('/bflipper', methods=['POST', 'GET'])
def bFlipper():
f = requests.get(
'https://api.hypixel.net/skyblock/bazaar?key=73ac0a44-4c41-4933-a9ee-b4095be2b6d2').json()
product_name = []
product_sellPrice = []
product_buyPrice = []
for x in productNames:
product_name.append(f["products"][x]["product_id"])
product_buyPrice.append(
f["products"][x]["buy_summary"]["pricePerUnit"])
product_sellPrice.append(
f["products"][x]["sell_summary"]["pricePerUnit"])
if request.method == 'POST':
userInput = request.form['coins']
return render_template("flipper.html", userInput=userInput, product_name=product_name, product_buyPrice=product_buyPrice, product_sellPrice=product_sellPrice)
else:
return render_template("flipper.html", product_name=product_name, product_buyPrice=product_buyPrice, product_sellPrice=product_sellPrice)
这个脚本虽然适用于数组,所以我需要从 API 中获取所有“pricePerUnit”,每个产品 (190+) 并将其存储在数组中,这就是我希望能够首先将“pricePerUnit”存储在变量中(sellPrice 和 buyPrice),然后将其附加到两个不同的数组中,这样我就可以通过它运行我的脚本了!
OBS:我将需要每个产品的“sell_summary”和“buy_summary”的“pricePerUnit”!
谢谢
【问题讨论】:
-
sell_summary和buy_summary是数组。所以有多个价格,你想用它们做什么? -
您想将哪个
pricePerUnit附加到product_sellPrice和product_buyPrice? -
@Barmar "sell_summary" 和 "buy_summary"(在 API 内部)由一个 "pricePerUnit" 组成,它是销售和购买产品的价格。我需要将“sell_summary”和“buy_summary”的价格保存在一个变量中,稍后我可以将其用于脚本。
-
你看过 JSON 了吗?它由一个数组组成,如
[{"amount":20181,"pricePerUnit":4.1,"orders":1},{"amount":28630,"pricePerUnit":4.0,"orders":1},{"amount":35037,"pricePerUnit":3.9,"orders":1},{"amount":140326,"pricePerUnit":3.8,"orders":2}] -
有 4 个不同的
pricePerUnit用于不同的金额。您希望变量中的哪一个?