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

Python如何将带双引号的数字字符串'"1"'转换为整数1?

报错原因

原代码仅替换了前缀 /gene=,处理后得到的字符串是被英文双引号包裹的"1"(报错日志里转义显示为"1"),int()函数仅接受纯数字格式的字符串入参,无法识别夹杂引号的内容,因此触发值转换错误。

可行解决方法
  • 方法1:链式替换清理所有非数字字符后转换
    替换前缀的同时把字符串里的双引号一并清除,再执行整数转换,写法最简单直接:
Gene = []
for item in p:
    # 依次移除前缀、双引号后转整数
    gene_id = int(item.replace("  /gene=", "").replace('"', ""))
    Gene.append(gene_id)
  • 方法2:剥离首尾引号后转换
    如果确认双引号仅出现在提取内容的首尾位置,可使用strip()方法精准移除首尾包裹的引号,避免误删内容中间可能存在的引号(当前场景无该风险,写法更严谨):
Gene = []
for item in p:
    clean_content = item.replace("  /gene=", "").strip('"')
    Gene.append(int(clean_content))
  • 方法3:正则匹配提取数字(容错性最高)
    无需逐一枚举要删除的杂字符,直接通过正则匹配字符串中的连续数字段,哪怕元素存在多余空格、特殊符号等格式偏差也能正常提取,适合数据格式不完全统一的场景:
import re
Gene = []
for item in p:
    num_res = re.search(r"\d+", item)
    if num_res:
        Gene.append(int(num_res.group()))

效果验证:针对触发报错的待转换字符串'"1"',上述三种方法都可以正常得到整数1,不会再抛出ValueError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:57:08