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

Python如何将键未加引号的字典格式字符串转换为实际字典

实现方法

可以通过正则表达式给无引号的键补加引号,再配合ast.literal_eval完成转换,该方案不会破坏值内部的逗号等字符。

具体代码实现

import re
from ast import literal_eval

str_to_convert = "{rpd.col_A : 'Type B', rpd_dev : 'Other, specify', rpd_form : 'Other'}"

# 正则匹配所有未加引号的字典键,匹配规则:{/逗号+空格 开头,后跟合法标识符,结尾是空格+冒号
processed_str = re.sub(r'([{,])\s*([a-zA-Z0-9_.]+)\s*:', r'\1 "\2":', str_to_convert)

# 转换为字典
result_dict = literal_eval(processed_str)

print(result_dict)
# 输出:{'rpd.col_A': 'Type B', 'rpd_dev': 'Other, specify', 'rpd_form': 'Other'}

方案说明

  • 正则仅匹配{/,之后、:之前的标识符作为键补加引号,不会匹配字符串值内部的任何内容,因此rpd_dev对应值里的逗号会完整保留
  • 用ast.literal_eval而非eval,避免执行恶意代码的安全风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:39:00