You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ArcGIS Python API用户列表循环更新角色问题求助

解决ArcGIS Python API循环更新用户角色的问题

我来帮你拆解下问题根源,以及给出直接可行的解决方案:

问题出在哪?

你错误地把整个用户列表转成了字符串——当执行User_string = str(Users)后,得到的是类似"['User01','User02','User03']"的字符串。这时候你循环遍历这个字符串,x会被赋值成[、'、U这类单个字符,而不是完整的用户名。这就导致gis.users.get拿到的是无效的“用户名”,自然会报错或者返回None。

而且完全没必要做这个转换!你的原始Users列表里每个元素本身就是字符串,完全符合gis.users.get的username参数要求。

修正后的代码

直接遍历原始的用户列表即可,还可以加上异常处理和存在性判断,避免执行过程中报错中断:

from arcgis.gis import GIS
Users = ['User01','User02','User03']

gis = GIS("https://www.arcgis.com","USERNAME","PASSWORD")
User_role = 'org_user'

for username in Users:
    try:
        user = gis.users.get(username=username)
        if user:
            user.update_role(role=User_role)
            print(f"成功更新用户 {username} 的角色为 {User_role}")
        else:
            print(f"未找到用户 {username},跳过处理")
    except Exception as e:
        print(f"处理用户 {username} 时发生错误: {str(e)}")

print("Done! Check Web")

针对Excel生成用户列表的注意事项

如果你的用户列表是从Excel读取的,要确保读取后的每个用户名都是字符串类型(比如有些库会把纯数字用户名识别为整数)。举个用pandas读取的例子:

import pandas as pd
# 读取Excel文件
user_df = pd.read_excel("你的用户列表文件.xlsx")
# 把用户名列转成字符串后再转成列表
Users = user_df["用户名"].astype(str).tolist()

内容的提问来源于stack exchange,提问作者jaderust

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:52:35