<p><code>strip</code>和<code>split</code>,expand参数设置为true,即</p>
<pre><code>df[['rank','url']] = df['ranks'].str.strip('{[]}').str.split(',',expand=True).values
Keyword ranks search_type search_volume rank url
0 kw1 [{'rank': 1, 'url': example.com}] 1 500 'rank': 1 'url': example.com
1 kw1 [{'rank': 1, 'url': example.com}] 2 500 'rank': 1 'url': example.com
2 kw2 [{'rank': 2, 'url': example.com}] 1 1500 'rank': 2 'url': example.com
3 kw2 [{'rank': 2, 'url': example.com}] 2 1500 'rank': 2 'url': example.com
4 kw3 [{'rank': 1, 'url': example.com}] 1 60 'rank': 1 'url': example.com
5 kw3 [{'rank': 1, 'url': example.com}] 2 60 'rank': 1 'url': example.com
</code></pre>
<p>如果没有,也可以将字符串转换为dict</p>
<pre><code>df[['rank','url']] =pd.concat(df['ranks'].apply(literal_eval).apply(pd.io.json.json_normalize).tolist()).values
# df[['rank','url']] =pd.concat(df['ranks'].apply(pd.io.json.json_normalize).tolist()).values # If you have lists with dict
Keyword ranks search_type search_volume rank url
0 kw1 [{'rank': 1, 'url': "example.com"}] 1 500 1 example.com
1 kw1 [{'rank': 1, 'url': "example.com"}] 2 500 1 example.com
2 kw2 [{'rank': 2, 'url': "example.com"}] 1 1500 2 example.com
3 kw2 [{'rank': 2, 'url': "example.com"}] 2 1500 2 example.com
4 kw3 [{'rank': 1, 'url': "example.com"}] 1 60 1 example.com
5 kw3 [{'rank': 1, 'url': "example.com"}] 2 60 1 example.com
</code></pre>