Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3使用plistlib解析iTunes库plist文件_Python_Python 3.x_Plist - Fatal编程技术网

Python3使用plistlib解析iTunes库plist文件

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:

我试图解析一个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: 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组合中。。。