所以我很难让我的代码在循环中使用字符串列表作为输入。到目前为止,大致就是这里。
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位置?
非常感谢!
答案 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")