<p>我想您需要<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.json.json_normalize.html" rel="nofollow noreferrer">^{<cd1>}</a>来创建<code>DataFrame</code>,列<code>weather</code>首先是带有<code>str[0]</code>的选择列表,然后通过<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.values.html" rel="nofollow noreferrer">^{<cd6>}</a>转换为{<cd5>},然后转换为<code>DataFrame</code>。(如果需要重命名列名,请将<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.add_prefix.html" rel="nofollow noreferrer">^{<cd8>}</a>)最后一个<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html" rel="nofollow noreferrer">^{<cd9>}</a>添加到原始:</p>
<pre><code>import urllib.request, json
url = "http://history.openweathermap.org//storage/debd7a72617dd61b0fc871a2c83fcabf.json"
#http://stackoverflow.com/a/12965254/2901002
with urllib.request.urlopen(url) as url:
data = json.loads(url.read().decode())
from pandas.io.json import json_normalize
df = json_normalize(data)
df1 = pd.DataFrame(df['weather'].str[0].values.tolist()).add_prefix('weather.')
print (df1.head())
weather.description weather.icon weather.id weather.main
0 broken clouds 04d 803 Clouds
1 broken clouds 04d 803 Clouds
2 overcast clouds 04d 804 Clouds
3 overcast clouds 04d 804 Clouds
4 overcast clouds 04n 804 Clouds
df = pd.concat([df.drop('weather', 1), df1], axis=1)
</code></pre>
^{pr2}$