1

我有一本字典,其键和值是从互联网更新的。该字典在每次更新时(出于某种原因)不断更改其键/变量的位置和数量,但键的名称和值的格式保持不变。最初,我将它的键和值转换为不同的数组,并通过跟踪它们的数组位置将它们的值存储到数据库中,但是在我发现它的可变性之后,它不再可能像我一样做,因为 len(dictionary ) 不断变化。字典项在每次更新时从一个 url 获取,有时会给我 31 个项(每个项是键:值),有时在字典中给我 3、29、28 甚至 27 个项。所以,我对一些“永远存在”的项目进行了概括,现在我想在每次更新时提取它们,但不是按照它们的顺序,但根据他们的钥匙。它更像是:我需要在字典中搜索特定的关键字并将其对应的值保存到变量中。例如,在一次更新中,它的键是:

>>> len(dict.keys())
>>> 30

在另一个更新:

>>> len(dict.keys())
>>> 26

这表明字典中的项目数量不断变化。但是,我已经注意到一些强制性密钥的列表(我将在下面提到),它们总是在那里,所以我只需要在事物更新时查找它们。更准确地说,我需要一种方法来从字典中提取特定键(可能通过搜索)及其对应的值,并将它们保存到不同的变量中,以便我可以将它们保存到数据库中。要搜索的键是:

  • temp_f
  • 相对湿度
  • 风目录
  • 压力_mb
  • 地点

谢谢。

4

2 回答 2

1

If I understood your problem well, you don't need to maintain the order of keys/values in your dictionary and you just want to strip your dictionary from unwanted keys and rename the keys you are interested in. Your concern is that some keys might also be missing. I would solve it in this way.

new_dict = {
    'tf' : original_dict.get('temp_f', None),
    'rh' : original_dict.get('relative_humidity', None),
     # And so on...
}
于 2012-11-12T16:08:45.563 回答
0

如果要保持顺序,请使用collections.OrderedDict而不是 normal dict

于 2012-11-12T15:59:37.140 回答