1
我想解析一個iTunes媒體庫文件,這是一個plist文件,使用python & plistlib。我寫了一個簡單的Python腳本:Python 3解析iTunes庫plist文件使用plistlib
import plistlib
plist = plistlib.readPlist('tunes.xml')
print(plist['Tracks'])
但是,當我嘗試運行它在第3行發生錯誤:
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 21970: ordinal not in range(128)
我試着將文件加載一個UTF-8編碼轉換到bytearray
並使用plistlib.readPlistFromBytes
但仍然發生錯誤
哪一個是解決此問題的最佳方法?
哪條語句((上述「第3行」)出現錯誤?你在什麼環境下運行? (OS X,Windows - 終端會話,IDLE) –
'print(plist ['Tracks'])'是發生錯誤的地方。我正在使用Linux(Arch Linux)。 – errorhandler
在OS X + Python 3.3或2.7上,您的代碼無需編解碼器即可直接運行。在Python 2.6下,我需要編解碼器。我懷疑它是在Python/Linux組合中... –