嘗試讀取包含一些 UTF-16 字串的 csv。當我列印從 csv 中提取的這些字串時,它們不會按應解碼的方式解碼為西里爾文/日文/任何內容,而只是列印編碼的 utf-16。然而,當我復制/粘貼字串并直接列印它們時,沒有問題。
data = pd.read_csv('stuff.csv')
for index,row in data.iterrows():
print('\u0423\u043a\u0440\u0430\u0438\u043d\u0430')
print(row[1])
輸出:
Украина
\u0423\u043a\u0440\u0430\u0438\u043d\u0430
我錯過了什么?請注意,某些 CSV 是 ascii,因此我不能將 csv 的編碼設定為 utf-16。
編輯:我正在嘗試有條件地解碼檢測到 utf-16 的字串。嘗試了從 csv 獲取的字串和復制/粘貼的字串:
print(bytearray(row[1].encode()).decode('utf-16'))
print(b'\u0423\u043a\u0440\u0430\u0438\u043d\u0430'.decode('utf-16'))
由于某種原因,它解碼為中文字符:
畜??畜?愳畜??畜??畜??畜?搳畜??
畜??畜?愳畜??畜??畜??畜?搳畜??
uj5u.com熱心網友回復:
假設您實際上\u在檔案中有轉義,您可以使用 Pythonast模塊來訪問解釋器的實際決議器:
from ast import literal_eval
...
print(literal_eval('"' row[1] '"'))
uj5u.com熱心網友回復:
pandas.read_csv
有一個encoding論點。
嘗試 data = pd.read_csv('stuff.csv', encoding='utf-16')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412588.html
標籤:
