Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.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
Python 如何对dict中的所有值进行编码?_Python_Encoding_Utf 8 - Fatal编程技术网

Python 如何对dict中的所有值进行编码?

Python 如何对dict中的所有值进行编码?,python,encoding,utf-8,Python,Encoding,Utf 8,我试图对我的所有数据进行如下编码:dict((k.encode('utf-8'),v.encode('utf-8'))for(k,v)in data.items(),但出现了错误:unicodeincoder:'ascii'编解码器无法对位置0-4的字符进行编码:序号不在范围(128)atv 如果我像打印数据[0]['Album'].encode('utf-8')那样直接执行,效果很好 更新: 以下是dict中的一项(数据[0]): 对于我来说,不需要对键进行编码就可以工作(对于键,编码可以工作

我试图对我的所有数据进行如下编码:
dict((k.encode('utf-8'),v.encode('utf-8'))for(k,v)in data.items()
,但出现了错误:
unicodeincoder:'ascii'编解码器无法对位置0-4的字符进行编码:序号不在范围(128)
at
v

如果我像
打印数据[0]['Album'].encode('utf-8')
那样直接执行,效果很好

更新:

以下是dict中的一项(数据[0]):


对于我来说,不需要对键进行编码就可以工作(对于键,编码可以工作,但没有意义-所有键实际上都只是ascii字符串),并且字符串的检查值:

{k:v.encode('utf-8') if isinstance(v, basestring) else v for k,v in d.items()}
{'Album':'\xd0\x9c\xd0\xb5\xd1\x82\xd1\x80\xd0\xbe 2033','MIME' 类型“:”application/epub+zip“,”种类“:”电子书“,”有插图“:True, “名称”:“\xd0\x9c\xd0\xb5\xd1\x82\xd1\x80\xd0\xbe 2033”,“扩展名”: “epub”,“艺术家”: '\xd0\x94\xd0\xbc\xd0\xb8\xd1\x82\xd1\x80\xd0\xb8\xd0\xb9 \xd0\x90\xd0\xbb\xd0\xb5\xd0\xba\xd1\x81\xd0\xb5\xd0\xb5\xb2\xd0\xb8\xd1\x87 \xd0\x93\xd0\xbb\xd1\x83\xd1\x85\xd0\xbe\xd0\xb2\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9', “唯一ID”:“65B713FCA7956AA”,“发布者唯一ID”: 'urn:uuid:f29c974b-d68c-412c-964f-652e5a24a7c4','Package Hash': 'DB3AC6E6F43ED7477CE1B998C410FD5F','Path':'018D714FCD176F02.epub', “持久ID”:“018D714FCD176F02”,“受保护”:False}


你能给我们看一下
数据的样本吗?
?请显示实际的代码和你的数据以及你得到的回溯。gm,但奇怪的是,为什么它返回
\xd0\x9c\xd0\xb5\xd1\x82\xd1\x80\xd0\xbe 2033
而不是真实的书名?@NoNameZ在编码之前是unicode文本,编码之后值变成字节…>>打印u'\u041c\u0435\u0442\u0440\u043e 2033'Мццö2033
{k:v.encode('utf-8') if isinstance(v, basestring) else v for k,v in d.items()}