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

uidvcgyl  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(263)

我正在处理csv文件并将其放入PostgreSQL数据库。但是对于其中一个文件,每个字段都被引号包围(当在Excel中查看时,它看起来很正常。但是在记事本中,一行看起来像"名字"、"姓氏"、"单元号码"、"家庭号码"等,而它应该看起来像名字、姓氏、单元号码、家庭号码)。当我试图将其加载到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来删除这些引号?它只是某种不同的编码吗?

sg2wtvxw

sg2wtvxw1#

所以你可以添加更多的东西,也许可以把一些功能放到一个叫做“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)

相关问题