【发布时间】:2016-02-15 10:10:57
【问题描述】:
我有一本字典,我想将每个值都转换为 utf-8。这行得通,但有没有“更蟒蛇”的方式?
for key in row.keys():
row[key] = unicode(row[key]).encode("utf-8")
我可以做的列表
[unicode(s).encode("utf-8") for s in row]
但我不确定如何为字典做同样的事情。
这与Python Dictionary Comprehension 不同,因为我不是要从头开始创建字典,而是从现有字典。链接问题的解决方案没有向我展示如何遍历现有字典中的键/值对,以便将它们修改为新字典的新 k/v 对。下面的答案(已被接受)显示了如何做到这一点,并且对于与我有类似任务的人来说,阅读/理解比链接相关问题的答案更容易理解,后者更复杂。
【问题讨论】:
-
令我印象深刻的是,您设法提出了正确的短语(字典理解),但没有搜索“python 字典理解”!
-
为什么要将密钥转换为 utf-8?这听起来像 XY 问题
-
危险将罗宾逊!
unicode(row[key])将使用系统字符集来解码row[key]。这意味着row[key]已经编码为特定字符集。此外,在需要将其输出到某个地方之前,您不应该进行编码,在这种情况下,允许 print 使用编码文本包装器进行转换或写入,例如io.open() -
@DSM 我找到了列表理解,并推断为字典理解,但是当我搜索它时没有找到一个很好的例子。
标签: python utf-8 list-comprehension