如何删除CSV文件中字段周围的引号?



我正在处理csv文件并将它们放入postgreSQL数据库。然而,对于其中一个文件,每个字段都被引号包围(当在Excel中查看时,它看起来很正常。但在记事本中,一行看起来像"名"、"姓"、"细胞编号"、"家庭编号"等。当它看起来像Firstname,Lastname,CellNumber,HomeNumber)。当我试图将它加载到SQL中时,它崩溃了。

我尝试将文件加载到python中进行数据清理,但我得到一个错误:

这是我在python中加载文件的代码:

import pandas as pd
logics = pd.read_csv("test.csv")

,这是我得到的错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 28682: invalid continuation byte

我尝试将其编码为utf-8,但这给了我一个不同的错误。代码:

import pandas as pd
logics = pd.read_csv("test.csv", encoding= 'utf-8')

错误:

pandas.errors.ParserError: Error tokenizing data. C error: Expected 12 fields in line 53, saw 14

无论出于何种原因,当我在文件资源管理器中手动将文件保存为UTF-8,然后再次将其保存为CSV文件时,它会删除引号,但我需要自动执行此过程。我是否可以使用python删除这些引号?是某种不同的编码吗?

所以你可以添加更多,也许把一些功能拉到一个叫做"clean_line"的函数中。下面应该遍历csv,并删除任何一行中的所有"字符。不需要真正的pandas开销,使用标准的python库也会使它更快。

with open("test.csv",'r')as f:
lines = f.readlines()
with open("output.csv", 'w') as f:
output=[]
for line in lines:
output.append(line.replace('"',''))
f.writelines(output)

最新更新