python字符串循环问题

时间:2019-02-08 22:33:52

标签: python

所以我很难让我的代码在循环中使用字符串列表作为输入。到目前为止,大致就是这里。

from arcgis.gis import GIS

Users = ['User01','User02','User03']
User_string = str(Users) # Have to do this as code needs input as string
gis = GIS("https://www.arcgis.com","USERNAME","PASSWORD") # This logs you into ArcGIS Online
User_role = 'org_user'

for x in User_string:
    test = gis.users.get(username=x)
    test.update_role(role=User_role)
  print("Done! Check Web")

我只是无法使循环正常工作。当我删除for循环并将每个用户名单独放入时,get user和update角色命令可以正常工作,只是在循环中被破坏了。

我遇到的两个错误是用户名必须是字符串。我通过添加str()命令解决了该问题,但无法获得用户名才能进入user.get循环。

有什么建议吗?这段代码实际上是在查看一个excel文件以生成用户名列表,因此我不能仅仅将列表硬编码到代码中。如果这对我一直在代码的ArcGIS部分使用的网站都有用,请使用以下网址:https://developers.arcgis.com/python/guide/accessing-and-managing-users/

我应该提到我也尝试过打印

test=gis.users.get(username=User_string)

它又返回了None。所以我想我的问题是如何让“ User01”进入username = x位置?

非常感谢!

2 个答案:

答案 0 :(得分:1)

您正在使用列表作为字符串的for,因此它在字符串的每个字符上循环播放。您需要使用原始列表进行操作。

答案 1 :(得分:0)

根据您的代码,您告诉for循环在String上进行迭代,因为您已使用User_string = str(Users)将列表转换为字符串。因此,循环遍历了字符串上的每个字符,现在为User01User02User03

您需要做的是迭代列表Users,例如:

from arcgis.gis import GIS

Users = ['User01','User02','User03']
gis = GIS("https://www.arcgis.com","USERNAME","PASSWORD") # This logs you into ArcGIS Online
User_role = 'org_user'

for x in Users:
    test = gis.users.get(username=x)
    test.update_role(role=User_role)
  print("Done! Check Web")