擅长:python、mysql、java
<p>为了完整起见,下面是一个接受的答案,其中包含一个类型参数,它允许您筛选出要保留的值类型。在我的例子中,这只是数组值,但是这种行为对于解析json文件的结果或者特别是我们的模拟程序的数据非常有用。在</p>
<pre><code>def flattenDict(d, *types):
node_map = {}
node_path = []
def nodeRecursiveMap(d, node_path):
for key, val in d.items():
if type(val) in types:
node_map['.'.join(node_path + [key])] = val
if type(val) is dict:
nodeRecursiveMap(val, node_path + [key])
nodeRecursiveMap(d, node_path)
return node_map
</code></pre>
<p>例如,只保留整数和字符串:</p>
^{pr2}$