栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将dict的键和值从unicode转换为str的最快方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将dict的键和值从unicode转换为str的最快方法?

DATA = { u'spam': u'eggs', u'foo': frozenset([u'Gah!']), u'bar': { u'baz': 97 },         u'list': [u'list', (True, u'Maybe'), set([u'and', u'a', u'set', 1])]}def convert(data):    if isinstance(data, basestring):        return str(data)    elif isinstance(data, collections.Mapping):        return dict(map(convert, data.iteritems()))    elif isinstance(data, collections.Iterable):        return type(data)(map(convert, data))    else:        return dataprint DATAprint convert(DATA)# Prints:# {u'list': [u'list', (True, u'Maybe'), set([u'and', u'a', u'set', 1])], u'foo': frozenset([u'Gah!']), u'bar': {u'baz': 97}, u'spam': u'eggs'}# {'bar': {'baz': 97}, 'foo': frozenset(['Gah!']), 'list': ['list', (True, 'Maybe'), set(['and', 'a', 'set', 1])], 'spam': 'eggs'}

假设:

  • 您已经导入了collections模块,并可以利用其提供的抽象基类
  • 您很乐意使用默认编码进行转换(如果需要显式编码,请使用
    data.enpre('utf-8')
    而不是
    str(data)
    )。

如果您需要支持其他容器类型,希望可以很明显地遵循该模式并为其添加案例。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647294.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号