如何用Python给数字添加双引号包裹以适配计算APP
解决Python导出文本文件时数字带双引号的问题
你遇到的问题根源是:手动给字段添加双引号后,to_csv会按照CSV规范自动处理包含引号的字段——把整个字段用双引号包裹,同时将内部的双引号转义为两个连续引号,所以才会出现"""1"""的结果。
下面提供两种可行的解决方法:
方法一:利用to_csv参数自动添加引号
不需要手动给字段加引号,直接通过csv模块的参数控制引号行为:
import pandas as pd import csv # 先把数字字段转成字符串(确保后续被引号包裹) data['field_1'] = data['field_1'].astype(str) # 导出时指定所有字段用双引号包裹,避免自动转义问题 data.to_csv("output.txt", index=False, quoting=csv.QUOTE_ALL, quotechar='"')
如果只需要特定字段(比如仅field_1)带引号,其他字段保持原样,可以用手动写入的方式更精准控制:
方法二:手动写入文件,精确控制格式
绕过to_csv的自动处理逻辑,自己构建每行内容:
import pandas as pd with open("output.txt", "w", encoding='utf-8') as f: # 写入表头 f.write(','.join(data.columns) + '\n') # 遍历每一行数据 for _, row in data.iterrows(): row_items = [] for col_name in data.columns: if col_name == 'field_1': # 给目标字段添加双引号 row_items.append(f'"{row[col_name]}"') else: # 其他字段直接转字符串写入 row_items.append(str(row[col_name])) # 拼接成一行写入文件 f.write(','.join(row_items) + '\n')
这两种方法都能导出符合要求的"1"格式,不会出现多余的引号。
内容的提问来源于stack exchange,提问作者LaTeXFan
相关产品推荐
相关产品推荐

