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

如何转换嵌套引号格式字符串?解决字典键引号致KeyError

解决方案:处理带外层引号的字符串与字典键问题

嘿,针对你提出的两个问题,我整理了几个更简洁高效的方案,比你用列表推导式的方法更优雅哦:

1. 去除字符串外层的引号与空格

你的需求是把类似 ' "string" ' 或 " 'string' " 这类带外层引号(还可能带前后空格)的字符串,转换成单纯的 string。其实Python的字符串内置方法 strip() 就能完美解决这个问题——它可以一次性去除字符串两端指定的字符,不用遍历每个字符:

# 处理带双引号外层的情况
x = ' "string" '
x_clean = x.strip('\'" ')  # 指定要去除的字符:单引号、双引号、空格
print(x_clean)  # 输出: 'string'

# 处理带单引号外层的情况
y = " 'hello' "
y_clean = y.strip('\'" ')
print(y_clean)  # 输出: 'hello'

strip('\'" ') 的作用是:只去除字符串两端的单引号、双引号和空格,字符串中间如果有引号(比如' "str"ing" ')会被保留下来,这比你的列表推导式更精准,而且内置方法的执行效率也更高。

2. 解决字典键带引号导致的KeyError

如果你的字典键是带外层引号的字符串(比如键是'"name"'或"'age'"),导致访问普通字符串键时报错,你可以通过字典推导式批量清理所有键:

# 原字典,键带外层引号
original_dict = {'"string"': 100, "'apple'": 200, ' "banana" ': 300}

# 生成清理后的新字典
cleaned_dict = {key.strip('\'" '): value for key, value in original_dict.items()}

# 现在可以用普通字符串访问了
print(cleaned_dict['string'])  # 输出: 100
print(cleaned_dict['apple'])   # 输出: 200

如果你不想生成新字典,也可以在访问时临时清理键:

key_to_access = 'string'
# 遍历原字典的键,找到清理后匹配的键
for k in original_dict:
    if k.strip('\'" ') == key_to_access:
        print(original_dict[k])
        break

对比你原来的列表推导式方法,strip() 不仅代码更简洁,还能避免误删字符串中间的引号(如果有的话),同时执行效率更高,因为它是Python底层优化过的内置方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:09:31