每次我在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问题。
答案 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 代码,以重现问题。