【问题标题】:Accessing Unicode Values in a Python Dictionary在 Python 字典中访问 Unicode 值
【发布时间】:2018-05-13 03:18:14
【问题描述】:

由于通过 json.loads() 导入 JSON,我有一个充满 unicode 键/值的字典。

dictionaryName = {u'keyName' : u'valueName'}

我正在尝试访问字典中的值,如下所示:

accessValueName = dictionaryName.get('keyName')

这返回 None,假设是因为它正在寻找字符串“keyName”并且列表中充满了 unicode 值。我尝试在拨打电话时在我的 keyName 前面加上一个“u”,但它仍然没有返回。

accessValueName = dictionaryName.get(u'keyName')

我还发现了几个看似过时的方法将整个字典转换为字符串值而不是 unicode,但是它们不起作用,我不确定是否需要转换整个内容。

如何将整个字典从 Unicode 转换为字符串,或者只使用键名访问值?

编辑:

我刚刚意识到我试图从嵌套字典中访问一个值,但我没有注意到它是嵌套的。

解决办法确实是:

accessValueName = dictionaryName.get('keyName')

【问题讨论】:

标签: python json dictionary unicode


【解决方案1】:

字典使用对象的哈希值将值存储在哈希表中。

print(hash(u"example"))
print(hash("example"))

产生相同的结果。因此,两者都应该可以访问相同的字典值。

【讨论】:

  • OP 刚刚编辑说明这是一个不可重现的错误;)
  • @RafaelC 刚看到,如果以后有人来这里阅读标题并且需要这些知识,我将答案留在这里。
  • 但是,两个 不同的 值可以具有相同的哈希值。如果您使用的是 Python 3,u'example''example' 是同一 Unicode 字符串的两种语法。在 Python 2 中,类型不同,但 ASCII 字节字符串和 ASCII unicode 字符串恰好具有相同的哈希值,Python 会隐式地从一种转换为另一种进行比较。 Python 3 不会这样做。
猜你喜欢
  • 2013-05-18
  • 2021-12-31
  • 1970-01-01
  • 2012-05-20
  • 2021-09-20
  • 2022-11-22
  • 2017-08-12
  • 1970-01-01
  • 2013-02-13
相关资源
最近更新 更多