Python 如何使用flask从JSON webhook获取单个键的值列表?
我有一个webhook侦听器,它侦听特定的webhook并捕获JSON数据 json数据的一个示例Python 如何使用flask从JSON webhook获取单个键的值列表?,python,python-3.x,flask,Python,Python 3.x,Flask,我有一个webhook侦听器,它侦听特定的webhook并捕获JSON数据 json数据的一个示例 [ { "InvoiceNumberPrefix": "AB-", "InvoiceNumber": 1111 ], "OrderItemList": [ { "CatalogI
[
{
"InvoiceNumberPrefix": "AB-",
"InvoiceNumber": 1111
],
"OrderItemList": [
{
"CatalogID": 1,
"ItemIndexID": 1,
"ItemID": "444444",
},
{
"CatalogID": 1,
"ItemIndexID": 1,
"ItemID": "666666",}
}
]
WebHook侦听器
@app.route('/webhook', methods=['POST'])
def webhook():
if request.method == 'POST':
content = request.json
ITEM= content[0]['OrderItemList'][0]['ItemID']
ITEM2= content[0]['OrderItemList'][1]['ItemID']
我需要得到所有“ItemID”的值。我能够使用内容[0]['OrderItemList'][0]['ItemID']
但是,要获取ItemID值,这是不实际的,因为可能有数百个项目。我尝试了循环和迭代,但没有成功。根据您在问题中展示的结构,您应该能够执行以下操作
for order in content[0]['OrderItemList']:
print(order['ItemID'])
它将打印响应中的每个
ItemID
。附加的json不正确。我已经纠正了它,并假设它是正确的
a = [
{
"InvoiceNumberPrefix": "AB-",
"InvoiceNumber": 1111,
"OrderItemList": [
{
"CatalogID": 1,
"ItemIndexID": 1,
"ItemID": "444444"
},
{
"CatalogID": 1,
"ItemIndexID": 1,
"ItemID": "666666"
}
]
}
]
print([j["ItemID"] for i in a for j in i["OrderItemList"]])
输出:
['444444', '666666']
“不成功”是什么意思?你到底尝试了什么,它是如何不起作用的?我不能确定,因为没有太多的东西可以做,但我认为OP的问题可能与烧瓶有关。所以我尝试了类似的东西,但没有起作用。看起来我有缩进错误。谢谢如果将来有人试图实现同样的目标,这就是解决方案。