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

如何将键无引号、值含逗号的字典字符串转为Python字典?

Python无引号键字典字符串转标准字典方案

核心思路

字符串无法直接用ast.literal_eval转换的核心原因是键未被引号包裹,我们可以通过正则匹配先为所有合法键补全引号,再执行转换,全程不会修改单引号包裹的值内容,可完整保留值中的逗号。

完整可运行代码

import re
import ast

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"\3', str_to_convert)
# 转换为Python字典
result_dict = ast.literal_eval(processed_str)

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

正则规则说明

  • ([{,]\s*):匹配字典开头的{或者键值对分隔的,,以及后面的任意空白字符,作为第一组保留
  • ([a-zA-Z0-9_.]+):匹配由字母、数字、下划线、点组成的合法键名,作为第二组,替换时为其包裹双引号
  • (\s*:):匹配键后面的任意空白和冒号分隔符,作为第三组保留
    这种写法完全不会触碰单引号包裹的value区域,因此rpd_dev对应值中的逗号会完整保留。

内容的提问来源于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 04:27:03