python - 如何将unicode dict转换为字符串

标签 python type-conversion

我的问题如下。我们有包含所有键和值的 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/

相关文章:

c++ - g++:错误:没有依赖模板参数的 'pow' 参数,因此 'pow' 的声明必须可用 [-fpermissive]

java - 字符串数组到字符串

python - 如何在 Django 中生成 303 Http 响应?

python - 将 24 位整数转换为 32 位整数的更多 Pythonic 方式

Python sklearn OneHotEncoding 分类值和有时重复的值

c - 如何将 const uint8_t * const 转换为 bool

python - 如何跨驱动器使用只读文件 `shutil.move`

python - OpenGL 三角形旋转序列

python - 如何在 python 上将元组类型转换为 int?

c++ - 了解 C++ 中的转换