【发布时间】:2012-11-12 15:53:28
【问题描述】:
我有一本字典,其键和值是从互联网更新的。该字典在每次更新时(出于某种原因)不断更改其键/变量的位置和数量,但键的名称和值的格式保持不变。最初,我将它的键和值转换为不同的数组,并通过跟踪它们的数组位置将它们的值存储到数据库中,但是在我发现它的可变性之后,它不再可能像我一样做,因为 len(dictionary ) 不断变化。字典项在每次更新时从一个 url 中获取,有时会给我 31 个项(每个项是键:值),有时在字典中给我 3、29、28 甚至 27 个项。因此,我对一些“始终存在”的项目进行了概括,现在我想在每次更新时提取它们,但不是根据它们的顺序,而是根据它们的键。它更像是:我需要在字典中搜索特定的关键字并将其对应的值保存到变量中。例如,在一次更新中,它的键是:
>>> len(dict.keys())
>>> 30
关于另一个更新:
>>> len(dict.keys())
>>> 26
这表明字典中的项目数不断变化。但是,我已经注意到一些强制性密钥的列表(我将在下面提到),它们总是在那里,所以我只需要在事物更新时查找它们。更准确地说,我需要一种方法来从字典中提取特定键(可能通过搜索)及其对应的值,并将它们保存到不同的变量中,以便我可以将它们保存到数据库中。要搜索的键是:
- temp_f
- 相对湿度
- wind_dir
- pressure_mb
- 位置
谢谢。
【问题讨论】:
-
您正在寻找
OrderedDict(),无需在字典中搜索关键字,只需搜索if key in dict。 -
怎么样?我认为它更多地用于排序并且不允许我搜索特定的键..或者是吗?
-
无需在字典中查找某个键,一个简单的
if key in dict就可以告诉您该键是否存在。 -
您使用
dict不是为它设计的。dict是将键与值相关联,并且没有真正的内在工具来搜索键而不必遍历整个键列表。 -
@khan,您需要向我们展示您的一些代码和数据结构,以便更清楚地了解您在这里要做什么。
标签: python arrays dictionary