簡體   English   中英

UnicodeDecodeError:“utf-16-le”編解碼器無法解碼 position 108 中的字節 0x20:截斷數據

[英]UnicodeDecodeError: 'utf-16-le' codec can't decode byte 0x20 in position 108: truncated data

我想使用 pandas 讀取 excel 文件,但收到以下錯誤:

WARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zero
--------------------------------------------------------------------------
UnicodeDecodeError: 'utf-16-le' codec can't decode byte 0x20 in position 108: truncated data

這是產生錯誤的代碼:

if not os.path.exists("Raw_Data"):
    os.mkdir("Raw_Data")
path = 'Raw_Data' 
all_files = glob.glob(path + "/*.xls")

li = []

for filename in all_files:
    df_updated = pd.read_excel(filename, index_col=None, header=0)
    li.append(df_updated)

該文件已從 a.aspx 內部服務器頁面導出到 .xlsx。

我花了一上午的時間進行故障排除 - 關於如何進行的任何建議?

這可能會解決您的解碼問題

with open('dataset.xls', "w") as data:
    new = data.read().decode('utf-16-le')

所以,你可以對解碼文件'new'進行操作

要使用 utf-16 進行解碼,字符串的大小(以字節為單位)必須是偶數。 a='abcde'.encode().decode('utf-16')產生錯誤:

UnicodeDecodeError:“utf-16-le”編解碼器無法解碼 position 4 中的字節 0x65:截斷數據

雖然這a='abcdef'.encode().decode('utf-16')運行良好:如果字符串長度不均勻,您可以在末尾添加空格或換行符。 但這是一種快速的解決方法,不能適用於所有場景。

暫無
暫無

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

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