簡體   English   中英

讀取CSV文件時如何從文本字段中刪除這些符號?

[英]How do I get rid of these symbols from the text fields when reading a CSV file?

每次我在Python中打開CSV時,都會不斷看到這些奇怪的符號,它們代表文本字段中的標點符號和特殊字符。 例如:

import pandas as pd
import csv
data = pd.read_csv("Test.csv", encoding="ISO-8859-1") #utf-8 encoding doesn't work
data.head()

帶有文本的列將具有“Assassinâx80x99s信條起源”之類的內容。

所以我想您想知道我是如何首先創建csv的?

這是我使用的代碼:

def updateSubs_file():
    upload_count = 0
    import csv
    location = "csvs"
    filename = "Test.csv"
    file = location + filename
    with open(file, 'w', newline='', encoding='utf-8') as file: 
        a = csv.writer(file, delimiter=',')
        headers = ["Title","Url","Author","Score"]
        a.writerow(headers)
        for sub in subStats:
            a.writerow(subStats[sub][0])
            upload_count+=1

        print(str(upload_count) + " rows have been uploaded")

updateSubs_file()

因此,我可以看到在創建csv並打開時已經存在編碼不匹配的問題,但是我最初添加了encoding =“”參數以避免Unicode解碼錯誤。 這可能/可能不是我的問題的因素。

當我用Python上傳/閱讀csv時,如果能解決我的csv發生了什么,將對您的幫助表示感謝。

UTF-8 確實有效。 您是使用UTF-8編寫的,因此請使用UTF-8對其進行解碼。 例如,撤消不正確的ISO-8859-1解碼,並使用utf8重新解碼:

>>> s='Assassinâ\x80\x99s creed origins'.encode('iso-8859-1').decode('utf8')
'Assassin’s creed origins'

如果您在解碼utf8編寫的內容時遇到問題,請使用示例輸入和輸出顯示確切的代碼,以重現問題。

暫無
暫無

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

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