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

Python构建AWS角色ARN列表时移除多余单引号的方法

问题:移除AWS角色ARN生成时的多余单引号

我正在构建AWS角色的资源列表,现有示例字典如下:

shared ={
    "mts":{ 
        "account_id":"11111",
        "workbench":"aaaaa",
        "prefix":"rad600-ars-sil,rad600-srr-sil-stage1,rad600-srr-sil-stage2"
    },
    "tsf":{ 
        "account_id":"22222",
        "workbench":"bbbbb",
        "prefix":"yyyy"

    }
}

我用以下代码生成role_arn列表:

role_arn=[]
for key in shared:
    
    role_arn.append(f"arn:aws:iam::'{shared[key]['account_id']}':role/'{shared[key]['workbench']}'_role") 

当前输出结果里包含多余的单引号:

["arn:aws:iam::'11111':role/'aaaaa'_role", "arn:aws:iam::'22222':role/'bbbbb'_role"]

我希望生成的ARN里没有这些单引号,得到如下目标输出:

["arn:aws:iam::11111:role/aaaaa_role", "arn:aws:iam::22222:role/bbbbb_role"] 

我刚接触Python,请问该怎么实现?


解决方法

问题出在你写的f-string里——你手动给account_id和workbench的值加了单引号,这些单引号会被直接拼接到结果里。只需要把f-string里的单引号去掉就行:

role_arn=[]
for key in shared:
    role_arn.append(f"arn:aws:iam::{shared[key]['account_id']}:role/{shared[key]['workbench']}_role") 

运行这段修正后的代码,就能得到你想要的无单引号的ARN列表。

另外,如果你想让代码更简洁,还可以用列表推导式一行完成:

role_arn = [f"arn:aws:iam::{v['account_id']}:role/{v['workbench']}_role" for v in shared.values()]

这个写法和循环的效果完全一致,只是更紧凑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:40:41