我有一个参数字典,包含由字符串,列表和其他字典组成的复杂数据。现在我想迭代这些数据。
我的问题是 - 最好的做法 - 有一个迭代器,它迭代列表和字典。
我有什么:
def parse_data(key, value):
iterator = None
if isinstance(value, dict):
iterator = value.items()
elif isinstance(value, list):
iterator = enumerate(value)
if iterator is not None:
for key, item in iterator:
parse_data(key, item)
return
# do some cool stuff with the rest
这看起来不太诡异。我想到了一个类似于iter
的函数,它让我可以遍历key和item。
希望你能提供帮助。
非常感谢先进。
答案 0 :(得分:0)
我认为这相当pythonic。我只想把它改成:
def parse_data:
if isinstance(value, dict):
iterator = value.items()
elif isinstance(value, list):
iterator = enumerate(value)
else:
return
for key, item in iterator:
parse_data(value, key, item)
# do some cool stuff with the rest
答案 1 :(得分:0)
我不确定是否有更短的方法,但Python的构建是为了做一件事情。也许这可能是另一种方式。我没有对它进行测试,因此它可能无法正常工作。
def parse_data(key,value):
iterator = isinstance(value,dict)
if iterator is False and isinstance(value,list):
iterator = enumerate(value)
if iterator is not None:
for key,item in iterator:
parse_data(key,item)
return
#do some cool stuff with the rest