Reputation: 399
I want to get the timestamp,high,low,open, close for the the json link below but I get only error
charterror Noneresult [{u'indicators': {u'quote': [{u'high': [45.25,...
My code is below:
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']]
Please guide how to get the data into dataframe
Upvotes: 0
Views: 2928
Reputation: 6556
If you use pandas
to read_json
from your url, it will save all json data into one cell (column chart
, row result
).
Based on your code, you have to extract the dictionary data for 'timestamp','open','high,'low'
and 'close'
, after that you can pass them to pandas DataFrame
:
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
will be:
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
...
Alternatively, you can load the json from the url (refer to this answer), then extract the dictionary data ('timestamp','open','high,'low' and 'close'
), pass it to pandas to generate the result dataframe.
Upvotes: 1