有没有更好的方法迭代到我的字典数据而不使用3嵌套for loops像我目前正在做的给定这些数据?顺便说一下,我正在使用python 2.6.
data = {'08132012':
{
'id01': [{'code': '02343','status': 'P'},{'code': '03343','status': 'F'}],
'id02': [{'code': '18141','status': 'F'},{'code': '07777','status': 'F'}]
}
}
Run Code Online (Sandbox Code Playgroud)
这是3 for循环当前代码:
for date in data:
for id in data[date]:
for trans in data[date][id]:
print "Date: %s" % date
print "Processing id: %s" % id
print trans['code']
print trans['status']
//query to database
Run Code Online (Sandbox Code Playgroud)
已编辑:有效数据值
鉴于数据的嵌套特性,我认为没有任何方法可以避免某些嵌套循环.
但是,您可以通过为数据编写flattening生成器来避免嵌套大部分程序逻辑,如下所示:
def flatten(data):
for date in data:
for id in data[date]:
for trans in data[date][id]:
yield (date, id, trans)
def process(data):
for date, id, trans in flatten(data):
# do stuff with date, id, trans
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |