Python3使用plistlib解析iTunes库plist文件
我试图解析一个iTunes媒体库文件,它是一个使用python和plistlib的plist文件。我编写了一个简单的python脚本:Python3使用plistlib解析iTunes库plist文件,python,python-3.x,plist,Python,Python 3.x,Plist,我试图解析一个iTunes媒体库文件,它是一个使用python和plistlib的plist文件。我编写了一个简单的python脚本: import plistlib plist = plistlib.readPlist('tunes.xml') print(plist['Tracks']) 但当我尝试运行它时,第3行出现错误: UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 21970:
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
,但仍然出现错误
解决此问题的最佳方法是什么?可能是您正在运行此功能的终端会话或控制台未设置为与UTF-8兼容的
区域设置。有关更多信息,请参阅。例如,在美国英语地区:
export LANG=en_US.UTF-8
您从哪个语句(上面提到的“第3行”)中得到错误?你是在什么环境下运行的?(OS X,Windows-终端会话,空闲)print(plist['Tracks'])
是发生错误的地方。我使用的是Linux(ArchLinux)。在OSX+Python3.3或2.7上,您的代码在没有编解码器支持的情况下可以直接工作。在Python2.6下,我需要编解码器。我怀疑它在Python/Linux组合中。。。