Dra*_*els 2 python type-conversion
我的问题如下.我们有dict,其所有键和值都是unicode,例如:
ab = {
u'a': u'A',
u'b': u'B',
u'c': u'C',
}
Run Code Online (Sandbox Code Playgroud)
我想将其转换为字符串.当我这样做时显然:
str(ab)
Run Code Online (Sandbox Code Playgroud)
我会收到:
"{u'a': u'A', u'c': u'C', u'b': u'B'}"
Run Code Online (Sandbox Code Playgroud)
如果我做:
unicode(ab)
Run Code Online (Sandbox Code Playgroud)
我会收到:
u"{u'a': u'A', u'c': u'C', u'b': u'B'}"
Run Code Online (Sandbox Code Playgroud)
我的预期结果是:
"{'a': 'A', 'c': 'C', 'b': 'B'}"
Run Code Online (Sandbox Code Playgroud)
目前我发现,如果我执行json.dump,它会在每个键和值之前将其正确转换为字符串而不需要额外的"u",但它也会将True更改为true和其他javascript方言差异.
任何解决方法不同于在数据结构上递归迭代?
不,您需要手动将每个项目转换为字符串,然后将字典串起来,并注意除非Unicode数据全部是ASCII,否则您可能会遇到问题.做出这个假设,你可以使用字典理解来使它更快更简洁:
print({str(key): str(value) for key, value in ab.items()})
{'a': 'A', 'c': 'C', 'b': 'B'}
Run Code Online (Sandbox Code Playgroud)
如果你使用的是2.7.3之前的Python版本,没有dict理解:
dict((str(key), str(value)) for key, value in ab.items())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1243 次 |
| 最近记录: |