Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:使用pandas读取json_Python_Json - Fatal编程技术网

python:使用pandas读取json

python:使用pandas读取json,python,json,Python,Json,我想为下面的json链接获取时间戳,high、low、open、close,但我只得到一个错误 charterror Noneresult[{u'indicators':{u'quote':[{u'high':[45.25,… 我的代码如下: df = pd.read_json('https://query1.finance.yahoo.com/v7/finance/chart/CPN.BK?range=2y&interval=1d&indicators=quote&in

我想为下面的json链接获取时间戳,high、low、open、close,但我只得到一个错误 c
harterror Noneresult[{u'indicators':{u'quote':[{u'high':[45.25,…

我的代码如下:

df = pd.read_json('https://query1.finance.yahoo.com/v7/finance/chart/CPN.BK?range=2y&interval=1d&indicators=quote&includeTimestamps=true')
output = df[['timestamp','open','high,'low','close']]

请指导如何将数据放入数据框

如果您使用
pandas
从url中
读取\u json
,它将所有json数据保存到一个单元格中(列
图表
,行
结果

根据您的代码,您必须提取
'timestamp'、'open'、'high'、'low'
'close'
的字典数据,然后您可以将它们传递到
数据帧

import pandas as pd
df = pd.read_json('https://query1.finance.yahoo.com/v7/finance/chart/CPN.BK?range=2y&interval=1d&indicators=quote&includeTimestamps=true')
data = df['chart']['result'][0]
result = {'timestamp':data['timestamp'],
          'open':data['indicators']['quote'][0]['open'],
          'high':data['indicators']['quote'][0]['high'],
          'low':data['indicators']['quote'][0]['low'],
          'close':data['indicators']['quote'][0]['close']
         }
df1 = pd.DataFrame(result, columns==['timestamp','open','high','low','close'])
df1
df1
将是:

    timestamp    open   high    low     close   
0   1442977200   44.50  45.25   44.25   45.00       
1   1443063600   44.75  45.75   44.50   45.00   
2   1443150000   44.75  45.00   44.25   44.50   
3   1443409200   44.25  44.25   43.00   43.00   
4   1443495600   42.50  44.50   42.25   44.00   
5   1443582000   44.25  44.75   43.50   44.75   
6   1443668400   44.50  45.00   44.25   45.00   
7   1443754800   45.00  45.00   44.00   44.25   
8   1444014000   44.25  44.75   43.75   44.50   
...

或者,您可以从url加载json(请参阅),然后提取字典数据(
'timestamp','open','high','low'和'close'
),将其传递给pandas以生成结果数据框。

谢谢。如何对数据框进行排序,从左开始,按时间戳排序,然后按打开、高、低和关闭。现在开始,按关闭、高、低、打开和timstamp排序。需要正确的顺序。@lotteryman,在pd.dataframe中添加列,检查更新的答案:
df1=pd.dataframe(结果,列==['timestamp','open','high','low','close'])