我已閱讀關於此主題的上一個問題,但沒有提到字節。我有字節串像一個熊貓數據框下面的(?):\u0393\u03b9\u03ce\u03c1\u03b3\u03bf\u03c2 u039d\u03c4\u03b1\u03bb\u03ac\u03c1\u03b1\u03c2
和我試圖將它們轉換爲人類可讀的輸出。文本的語言是希臘語,數據是從JSON文件中讀取的(json.load/loads沒有什麼幫助,也沒有pd.read_json)。解碼字節和SyntaxError:續行字符後出現意外字符
當我試圖打印這樣一個對象時,它打印字節。
示例代碼打印:
lst = ['\\u0393\\u03b9\\u03ce\\u03c1\\u03b3\\u03bf\\u03c2 \\u039d\\u03c4\\u03b1\\u03bb\\u03ac\\u03c1\\u03b1\\u03c2',
'\\u0393\\u03b9\\u03ce\\u03c1\\u03b3\\u03bf\\u03c2 \\u039d\\u03c4\\u03b1\\u03bb\\u03ac\\u03c1\\u03b1\\u03c2',
'\\u0393\\u03b9\\u03ce\\u03c1\\u03b3\\u03bf\\u03c2 \\u039d\\u03c4\\u03b1\\u03bb\\u03ac\\u03c1\\u03b1\\u03c2']
df= pd.DataFrame(lst, columns=["some_bytestrings"])
print(df["some_bytestrings"])
# prints: \u0393\u03b9\u03ce\u03c1\u03b3\u03bf\u03c2 \u0...
print(df['some_bytestrings'].values[0])
# prints: \u0393\u03b9\u03ce\u03c1\u03b3\u03bf\u03c2 \u039d\u03c4\u03b1\u03bb\u03ac\u03c1\u03b1\u03c2
# eval seems to work for some previous data, don't know why
print(eval(dfsmall['some_bytestrings'].values[0]))
# ERROR ARISES HERE
print('\\u0393\\u03b9\\u03ce\\u03c1\\u03b3\\u03bf\\u03c2 \\u039d\\u03c4\\u03b1\\u03bb\\u03ac\\u03c1\\u03b1\\u03c2')
# prints \u0393\u03b9\u03ce\u03c1\u03b3\u03bf\u03c2 \u039d\u03c4\u03b1\u03bb\u03ac\u03c1\u03b1\u03c2
print(print(dfsmall['some_bytestrings'].values[0].encode().decode()))
# decoding encoding doesn't work, it prints: \u0393\u03b9\u03ce\u03c1\u03b3\u03bf\u03c2 \u039d\u03c4\u03b1\u03bb\u03ac\u03c1\u03b1\u03c2
需要注意的是,如果我把打印輸出和打印一遍,原來罰款:
print("\u0393\u03b9\u03ce\u03c1\u03b3\u03bf\u03c2 \u039d\u03c4\u03b1\u03bb\u03ac\u03c1\u03b1\u03c2")
# prints: 'Γιώργος Νταλάρας'
因爲它在我看來,它必須做如何Python的處理雙斜線(\\
),但我似乎無法變通解決這一點,因爲像string.replace("\\\\", "\\")
方法沒有幫助。