【问题标题】:How to iterate a list of string parameters with API calls?如何使用 API 调用迭代字符串参数列表?
【发布时间】:2021-10-07 08:39:21
【问题描述】:

我正在尝试通过 API 调用查找应用程序结果列表。

我遇到了需要将应用程序 ID 作为字符串参数传递的问题,而不是一次传递一个,我想一次迭代所有 ID

这是关于如何查找一个 application_id 的示例代码

result = lookup_api.list(application_id = "{{APP_ID}}"" 

if result['status'] == 200:
    print(result['data'])
else:
    print("An error occurred." + str(result['status']))
    print(result['data'])

如果我有一个应用程序 ID 列表,即,

app_id=['10000001','10000002','10000003','10000004']

我想迭代lookup_api.list 中的所有应用程序ID(作为字符串),您知道如何实现吗?

我试过了

index = 0
while index < len(app_id):
        result = [lookup_api.list(application_id=app_id[i]) for i in range(len(app_id))]
        index += 1
    
    if result['status'] == 200:
        print(result['data'])
    else:
        print("An error occurred." + str(result['status']))
        print(result['data'])

但它没有迭代我的应用程序列表。我得到 "TypeError: list indices must be integers or slices, not str" on if result['status'] == 200.

在这里提前感谢您的帮助!

【问题讨论】:

  • for i in range(len(app_id)): result = lookup_api.list(application_id=app_id[i])
  • 我将其更改为上述查询,现在我可以提取结果,但它只显示我列表中的最后一个应用程序,关于如何获取所有应用程序 ID 的任何想法?
  • 您可能想查看 python 列表理解:result = [ lookup_api.list(application_id=app_id[i]) for i in range(len(app_id)) ]
  • @etherealyn 谢谢!我刚刚用列表理解进行了测试,但它返回了另一个错误消息,说“列表索引必须是整数或切片,而不是 str”,知道为什么吗?请提前为您提供帮助。
  • 这是因为您正在遍历字符串列表并将它们用作索引,这是不允许的。也许,尝试直接使用应用程序 ID,例如:result = [lookup_api.list(application_id=x) for x in app_id]

标签: python list loops iterator


【解决方案1】:

您可以遍历列表并使用列表推导来收集 API 调用的结果,如下所示:

results = [lookup_api.list(application_id=x) for x in app_id]

for result in results:
   if result['status'] == 200:
      print(result['data'])
   else:
      print("An error occurred." + str(result['status']))
   print(result['data'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    相关资源
    最近更新 更多