我正在将数据从CSV加载到数据库模型。我使用中间层进行数据验证。下面是一个基本的例子:
{'Team':
{'Account':
{'InvoiceID' : invID,
'Amount': aLotOfMoney}
}}
for team in teams.:
for account in teams[team]:
for invoice in teams[team][account]:
acc = Account(ID = teams[team][account][invoiceID],
amount=teams[team][account][amount])
acc.save()
这一切都很好,但它远不是优雅的,而且似乎相当低效。有没有办法返回嵌套的Dict
而不是key
发布于 2020-07-01 07:34:59
你是想把字典压平吗?也就是说,你会得到一个字典,每个键都是它在每个字典中的键的组合。
您可以使用像flatten-dict这样的预制函数,也可以自己编写一些代码。
此示例嵌套字典:
{'ints': {'1': 1, '2': 2, '3': 3}, 'letters': {'a': 'A', 'b': 'B'}}
将被展平为:
{'ints.1': 1, 'ints.2': 2, 'ints.3': 3, 'letters.a': 'A', 'letters.b': 'B'}
自制:
def flatten_dict(data, keystring=''):
if type(data) is dict:
keystring = keystring + '.' if keystring else keystring
for k in data:
yield from flatten_dict(data[k], keystring + k)
else:
yield keystring, data
https://stackoverflow.com/questions/62667487
复制相似问题