首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >utf-8编码字典键值如果类型为string

utf-8编码字典键值如果类型为string
EN

Stack Overflow用户
提问于 2017-11-05 18:46:53
回答 2查看 1.4K关注 0票数 1

给定一个字典,如果类型是字符串,如何对utf-8字典键值进行编码?例如,使用字典理解:

代码语言:javascript
复制
{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}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-05 18:49:57

使用条件词:

代码语言:javascript
复制
{
    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()
}

或帮助者函数:

代码语言:javascript
复制
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()}
票数 3
EN

Stack Overflow用户

发布于 2017-11-05 18:53:42

假设键总是字符串,只需检查值的类型是否为字符串。

代码语言:javascript
复制
{k.encode("utf-8"): v.encode("utf-8") if type(v) is str else v 
 for k, v in mydict.iteritems()}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47125269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档