<p>据我所知,没有简单的方法可以做到这一点,因为您的数据包含多个级别的列表。虽然有点复杂,但下面的方法应该是可行的。代码将以迭代方式<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.explode.html" rel="nofollow noreferrer">^{<cd1>}</a>列出并将字典转换为带有<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.json_normalize.html" rel="nofollow noreferrer">^{<cd2>}</a>的列</p>
<pre class="lang-py prettyprint-override"><code>df = pd.DataFrame.from_records(response)
df = df.explode('details', ignore_index=True)
df = pd.concat([df, pd.json_normalize(df['details'])], axis=1)
df = df.explode('address', ignore_index=True)
df = pd.concat([df, pd.json_normalize(df['address'])], axis=1)
df = df.drop(columns=['details', 'address'])
</code></pre>
<p>结果:</p>
<pre><code> name empId country street city
0 xyz 007 xxz country x street x city
1 xyz 007 xxz country xx street xx city
2 xyz 007 yyz country y street y city
3 xyz 007 yyz country yy street yy city
</code></pre>
<p>注意:对于早于1.1.0的pandas版本,<code>explode</code>没有<code>ignore_index</code>参数。相反,在<code>explode</code>之后使用<code>reset_index(drop=True)</code></p>
<p>此外,在旧版本中,您需要使用<code>pd.io.json.json_normalize</code>而不是<code>pd.json_normalize</code></p>