【问题标题】:Loop List Python for Variable用于变量的循环列表 Python
【发布时间】:2020-02-25 15:20:28
【问题描述】:

我试图遍历一个列表并将“extensionid”插入到 URL 中

extensionid = ['1234','12356']
url = '/restapi/v1.0/account/~/extension/'+extensionid+'/presence'

params = {

    'dndStatus': "TakeAllCalls",

}

resp = platform.get(url, params,)
print ((resp.text()))

但我得到了错误

url = '/restapi/v1.0/account/~/extension/'+extensionid+'/presence' TypeError:只能将str(不是“list”)连接到str [完成于 1.121s

我做错了什么?

谢谢!

【问题讨论】:

  • 您希望您的url 是什么样子?
  • 您应该使用一个包来构建 url,而不是手动将它们粘在一起。容易出错
  • extensionid 也是一个列表,你不能这样插值。

标签: python json rest


【解决方案1】:

您可能需要。

extensionid = ['1234','12356']
url = '/restapi/v1.0/account/~/extension/{}/presence'

params = {
    'dndStatus': "TakeAllCalls",
}

for id in extensionid:     #iterate each id
    resp = platform.get(url.format(id), params)  #form URL and query. 
    print ((resp.text()))

【讨论】:

    【解决方案2】:

    extensionid 是一个字符串列表。 因此,您不能将列表与字符串连接起来,因为错误告诉您。

    要访问列表中的特定项目,您必须使用索引。

    例如:

    extensionid[0] // it contains 1234
    extensionid[1] // it contains 12356
    

    所以,你的网址可以这样写:

    url = '/restapi/v1.0/account/~/extension/'+extensionid[0]+'/presence'
    

    在这种情况下,python 会将其评估为:

    url = '/restapi/v1.0/account/~/extension/1234/presence'
    

    请考虑这个关于列表的简单文档:

    https://www.programiz.com/python-programming/list

    要迭代列表的元素,您可以使用:

    for element in extensionid:
        url='/restapi/v1.0/account/~/extension/'+ element +'/presence'
        print(url)
    

    【讨论】:

    • 看官方文档就好了,使用str.format比较好
    • 我并不仅仅关注解决方案,而是关注问题本身,试图解释他为什么会出现错误,理解它并避免将来出现它......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2015-01-16
    相关资源
    最近更新 更多