读取CSV文件时如何从文本字段中删除这些符号?

时间:2018-10-06 18:31:54

标签: python python-3.x csv python-unicode

每次我在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()

带有文本的列将带有类似“刺客\ x80 \ x99s信条起源”的内容。

所以我想您想知道我是如何首先创建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问题。

1 个答案:

答案 0 :(得分:2)

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编写的内容时遇到问题,请在示例输入和输出中显示 exact 代码,以重现问题。