簡體   English   中英

如何刪除 CSV 字段周圍的引號?

[英]How do I remove quotation marks around the fields of a 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”的 function 中。 下面應該是 go 到你的 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM