我的问题如下。我们有包含所有键和值的 unicode 字典,例如:
ab = {
u'a': u'A',
u'b': u'B',
u'c': u'C',
}
我想把它转换成一个字符串。显然,当我这样做时:
str(ab)
我会收到:
"{u'a': u'A', u'c': u'C', u'b': u'B'}"
如果我这样做:
unicode(ab)
我会收到:
u"{u'a': u'A', u'c': u'C', u'b': u'B'}"
我的预期结果是:
"{'a': 'A', 'c': 'C', 'b': 'B'}"
目前我发现,如果我执行 json.dumps,它会将其正确转换为字符串,而无需在每个键和值之前添加额外的“u”,但它也会将 True 更改为 true 和其他 javascript 方言差异。
除了在我的数据结构上递归迭代之外,还有什么解决方法吗?
最佳答案
不,您需要手动将每个项目转换为字符串,然后将 dict 字符串化,并注意除非 Unicode 数据恰好都是 ASCII,否则您可能会遇到问题。做出这个假设,您可以使用字典理解来使其更快、更简洁:
print({str(key): str(value) for key, value in ab.items()})
{'a': 'A', 'c': 'C', 'b': 'B'}
如果您使用的是 2.7.3 之前的 Python 版本,没有字典理解:
dict((str(key), str(value)) for key, value in ab.items())
关于python - 如何将unicode dict转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11139751/