我正在开发一个程序,其中之一的功能是读取CSV文件(它被存储为字典数组形式:[{col1:data1a,col2:data2a},{col1:data1b,col2:data2b}]
)。对于每一行,作为其他处理的一部分,我需要将这些键重新映射为用户输入的值,这些值在另一个字典中提供,以便可以用作API调用的参数。映射数组的格式如下:{badname1:goodname1, badname2:goodname2,...}
。
所以我想从以下内容得到:
{badname1:data1, badname2:data2,...}` to `{goodname1:data1, goodname2:data2,...}
我想使用类似于 zip()
的东西(尽管 zip()
会产生 {badname1: badname1,...}
)。
看起来应该有一个明显的解决方案,但我找不到。
如果数据在a
中,映射在b
中:
dict(zip(b,a.itervalues()))
我的方法接近正确,但只有在已知字段顺序相同时才有效。
{ m[k]:d[k] for k in d }
同样有效。 - Nils Werner{m.get(k, k): value[k] for k in value}
,其中k
是m.get(k)
的默认值。 - brandonscript