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

Python通过参数给字典键赋值时出现额外双引号问题咨询

问题原因及解决方案

错误原因

你从configuration中读取到的value1、value2并非Python原生列表类型,而是字符串格式的列表字面量。外层的双引号是Python标识字符串类型的标记,本质上你拿到的是一整串符合Python列表写法的文本,所以直接遍历的时候会逐字符读取,第一个字符就是[,和你的判断一致。

解决方法

按照优先级从高到低推荐以下方案:

  • 方案1:使用ast.literal_eval转换(最安全,仅解析Python字面量,不会执行恶意代码)
    代码示例:
    import ast
    
    # 读取配置后先做类型转换
    value1 = ast.literal_eval(configuration.value1)
    value2 = ast.literal_eval(configuration.value2)
    
    Services = {'mmbtu': value1, 'mmgal': value2}
    # 后续遍历逻辑不变
    
  • 方案2:使用json模块转换(需要先替换单引号为JSON标准的双引号)
    代码示例:
    import json
    
    value1 = json.loads(configuration.value1.replace("'", '"'))
    value2 = json.loads(configuration.value2.replace("'", '"'))
    
  • 方案3:从源头修改配置存储逻辑
    如果有权限调整configuration的写入规则,直接将数组以列表类型存储,不要转成字符串后再存储,读取时就无需额外做类型转换。

转换完成后可通过print(type(value1))验证,输出为<class 'list'>即代表转换成功,遍历即可正常获取每个元素值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:57:03