<p>这里有一种方法,假设您的<code>json</code>数据在一个名为<code>json_data</code>的变量中</p>
<pre><code>from itertools import product
def make_dfs(data):
cols = ['db_name', 'user', 'description']
for item in data.get('policies'):
description = item.get('description')
users = item.get('policyItems', [{}])[0].get('users', [None])
db_name = item.get('resources', {}).get('database', {}).get('values', [None])
db_name = [name for name in db_name if name != '*']
prods = product(db_name, users, [description])
yield pd.DataFrame.from_records(prods, columns=cols)
df = pd.concat(make_dfs(json_data), ignore_index=True)
print(df)
db_name user description
0 m2_db hive Policy for all - database, table, column
1 m2_db rangerlookup Policy for all - database, table, column
2 m2_db ambari-qa Policy for all - database, table, column
3 m2_db af34 Policy for all - database, table, column
4 m2_db g748 Policy for all - database, table, column
5 m2_db hdfs Policy for all - database, table, column
6 m2_db dh10 Policy for all - database, table, column
7 m2_db gs22 Policy for all - database, table, column
8 m2_db dh27 Policy for all - database, table, column
9 m2_db ct52 Policy for all - database, table, column
10 m2_db livy_pyspark Policy for all - database, table, column
</code></pre>
<p>在<code>Python 3.5.1</code>和{<cd4>}上测试</p>