Python 为字典键显式赋值的最短(最优雅)方法
我有一个类似JSON的大数据源。我必须将许多嵌套的值提取到另一个字典中(从那里可以将其结构化,以便保存到DB…) 有问题的嵌套数据示例:Python 为字典键显式赋值的最短(最优雅)方法,python,nested,extract,shortcut,one-liner,Python,Nested,Extract,Shortcut,One Liner,我有一个类似JSON的大数据源。我必须将许多嵌套的值提取到另一个字典中(从那里可以将其结构化,以便保存到DB…) 有问题的嵌套数据示例: ... {'SomeKindOfKey': [{ 'key1': value1, 'key2': value2, 'target_key': target_value, 'key4': value,
...
{'SomeKindOfKey': [{ 'key1': value1,
'key2': value2,
'target_key': target_value,
'key4': value,
'key5': value5,
'key6': value6}]
...
通常,当我需要访问同一嵌套级别内的更多键时,我会这样做:
# lower_dict -> dict from lower level of nesting
# collecting_dict -> here I collect useful data
for nested_dict in lower_dict['SomeKindOfKey']:
collecting_dict = {
"my-key1-in-db": nested_dict['key1'],
"my-target-key-in-db": nested_dict['target_key'],
...}
然而,假设我只需要从特定的嵌套级别提取一个值。在这种情况下,for循环中的整个缩进对我来说就像是杀伤力过大。毕竟,我的代码已经开始超级缩进/嵌套(目前类似于4-5级缩进) 有没有适合我的短小、优雅的一句台词或练习?我不想写意大利面代码。 我可以用这种方式来想一些具体的事情:
collecting_dict = {
"my-target-key-in-db": nested_dict['target_key'] for nested_dict in lower_dict['SomeKindOfKey'],
...}
“毕竟,我的代码已经开始超级缩进/嵌套(目前类似于4-5级缩进)”嗯,这似乎已经是个问题了。在任何情况下,通常您要做的是模块化您的程序,例如使用函数、类来避免此类事情