给定一个字典,如果类型是字符串,如何对utf-8字典键值进行编码?例如,使用字典理解:
{k.encode("utf-8"): v.encode("utf-8") for k, v in mydict.iteritems()}给定:mydict = {u'foo': u'bar', u'red': u'color', u'size': 12},编码字典键值,使其成为mydict = {'foo': 'bar', 'red': 'color', 'size': 12}。
发布于 2017-11-05 18:49:57
使用条件词:
{
k.encode("utf-8") if isinstance(k, unicode) else k:
v.encode("utf-8") if isinstance(v, unicode) else v
for k, v in mydict.iteritems()
}或帮助者函数:
def conditional_encode(s, encoding='utf-8', errors='strict'):
if isinstance(s, unicode):
return s.encode(encoding, errors)
return s
{conditional_encode(k): conditional_encode(v) for k, v in mydict.iteritems()}发布于 2017-11-05 18:53:42
假设键总是字符串,只需检查值的类型是否为字符串。
{k.encode("utf-8"): v.encode("utf-8") if type(v) is str else v
for k, v in mydict.iteritems()}https://stackoverflow.com/questions/47125269
复制相似问题