我有一个字典,其键和值是从互联网更新的。该字典在每次更新时都会不断更改其键/变量的位置和数量(由于某种原因),但键的名称和值的格式保持不变。最初,我将其键和值转换为不同的数组,并通过跟随它们的数组locaton将它们的值存储到数据库中,但是在我发现它的可变性之后,它再也不可能像我一样做了,因为len(字典) )不断变化。每次更新时都会从URL中获取字典项,有时会给我31个项目(每个项目是键:值),有时会在字典中给出3个,29个,28个甚至27个项目。所以,我已经对一些'always-there'项目进行了概括,现在我想在每次更新时提取它们,但不是根据它们的顺序,而是根据它们的键。它更像是:我需要在字典中搜索特定的关键字并将相应的值保存到变量中。例如,在一次更新时,它的键是:
>>> len(dict.keys())
>>> 30
另一次更新:
>>> len(dict.keys())
>>> 26
这表明字典中的项目数量保持不变。但是,我已经注意到一些强制键的列表(我在下面提到)总是在那里,所以我只需要在事物更新时查找它们。更确切地说,我需要一种方法来从字典中提取特定键(可能通过搜索)及其相应的值,并将它们保存到不同的变量,以便我可以将它们保存到数据库中。要搜索的键是:
感谢。
答案 0 :(得分:1)
如果我理解你的问题,你不需要维护字典中键/值的顺序,你只想从不需要的键中删除字典并重命名你感兴趣的键。你关心的是某些键可能也会丢失。我会以这种方式解决它。
new_dict = {
'tf' : original_dict.get('temp_f', None),
'rh' : original_dict.get('relative_humidity', None),
# And so on...
}
答案 1 :(得分:0)
如果您想维护订单,请使用collections.OrderedDict
代替普通dict
。