Reputation: 426
I am trying to get a piece of code working before I add mroe to it (database upload and such). What it currently does is get information in the form of a Pandas DataFrame and I am needing it in JSON format to upload into the DB.
Here is what I have:
import json
from yahooquery import Ticker
ticker_collection = ['AAPL', 'TSLA', 'NIO']
for ticker in ticker_collection:
ticker = Ticker(ticker)
stock_history = ticker.history(period='ytd', interval='1d')
print("\n" * 5)
print(stock_history)
This results in the following output:
low volume open high close adjclose dividends
symbol date
AAPL 2021-01-04 126.760002 143301900 133.520004 133.610001 129.410004 129.216919 0.000
2021-01-05 128.429993 97664900 128.889999 131.740005 131.009995 130.814514 0.000
2021-01-06 126.379997 155088000 127.720001 131.050003 126.599998 126.411102 0.000
2021-01-07 127.860001 109578200 128.360001 131.630005 130.919998 130.724655 0.000
2021-01-08 130.229996 105158200 132.429993 132.630005 132.050003 131.852966 0.000
2021-01-11 128.500000 100620900 129.190002 130.169998 128.979996 128.787552 0.000
2021-01-12 126.860001 91951100 128.500000 129.690002 128.800003 128.607819 0.000
2021-01-13 128.490005 88636800 128.759995 131.449997 130.889999 130.694702 0.000
2021-01-14 128.759995 90221800 130.800003 131.000000 128.910004 128.717667 0.000
2021-01-15 127.000000 111598500 128.779999 130.220001 127.139999 126.950294 0.000
2021-01-19 126.940002 90757300 127.779999 128.710007 127.830002 127.639267 0.000
2021-01-20 128.550003 104319500 128.660004 132.490005 132.029999 131.832993 0.000
2021-01-21 133.589996 120529500 133.800003 139.669998 136.869995 136.665771 0.000
2021-01-22 135.020004 114459400 136.279999 139.850006 139.070007 138.862503 0.000
2021-01-25 136.539993 157611700 143.070007 145.089996 142.919998 142.706757 0.000
2021-01-26 141.369995 98390600 143.600006 144.300003 143.160004 142.946396 0.000
2021-01-27 140.410004 140843800 143.429993 144.300003 142.059998 141.848038 0.000
2021-01-28 136.699997 142621100 139.520004 141.990005 137.089996 136.885452 0.000
2021-01-29 130.210007 177180600 135.830002 136.740005 131.960007 131.763107 0.000
2021-02-01 130.929993 106239800 133.750000 135.380005 134.139999 133.939850 0.000
2021-02-02 134.610001 83305400 135.729996 136.309998 134.990005 134.788589 0.000
2021-02-03 133.610001 89880900 135.759995 135.770004 133.940002 133.740158 0.000
2021-02-04 134.589996 84183100 136.300003 137.399994 137.389999 137.184998 0.000
2021-02-05 135.860001 75524000 137.350006 137.419998 136.759995 136.759995 0.205
2021-02-08 134.919998 71297200 136.029999 136.960007 136.910004 136.910004 0.000
2021-02-09 135.850006 76774200 136.619995 137.880005 136.009995 136.009995 0.000
2021-02-10 134.399994 73046600 136.479996 136.990005 135.389999 135.389999 0.000
2021-02-11 133.770004 64154400 135.899994 136.389999 135.130005 135.130005 0.000
2021-02-12 133.690002 60029300 134.350006 135.529999 135.369995 135.369995 0.000
2021-02-16 132.789993 80206200 135.490005 136.009995 133.190002 133.190002 0.000
2021-02-17 129.470001 95934652 131.250000 132.220001 130.839996 130.839996 0.000
low open high close volume adjclose
symbol date
TSLA 2021-01-04 717.190002 719.460022 744.489990 729.770020 48638200 729.770020
2021-01-05 719.200012 723.659973 740.840027 735.109985 32245200 735.109985
2021-01-06 749.099976 758.489990 774.000000 755.979980 44700000 755.979980
2021-01-07 775.200012 777.630005 816.989990 816.039978 51498900 816.039978
2021-01-08 838.390015 856.000000 884.489990 880.020020 75055500 880.020020
2021-01-11 803.619995 849.400024 854.429993 811.190002 59554100 811.190002
2021-01-12 827.340027 831.000000 868.000000 849.440002 46270700 849.440002
2021-01-13 832.000000 852.760010 860.469971 854.409973 33312500 854.409973
2021-01-14 838.750000 843.390015 863.000000 845.000000 31266300 845.000000
2021-01-15 819.099976 852.000000 859.900024 826.159973 38777600 826.159973
2021-01-19 833.000000 837.799988 850.000000 844.549988 25367000 844.549988
2021-01-20 837.280029 858.739990 859.500000 850.450012 25665900 850.450012
2021-01-21 841.419983 855.000000 855.719971 844.989990 20598100 844.989990
2021-01-22 828.619995 834.309998 848.000000 846.640015 20066500 846.640015
2021-01-25 838.820007 855.000000 900.400024 880.799988 41173400 880.799988
2021-01-26 871.599976 891.380005 895.900024 883.090027 23131600 883.090027
2021-01-27 858.659973 870.349976 891.500000 864.159973 27334000 864.159973
2021-01-28 801.000000 820.000000 848.000000 835.429993 26378000 835.429993
2021-01-29 780.099976 830.000000 842.409973 793.530029 34990800 793.530029
2021-02-01 795.559998 814.289978 842.000000 839.809998 25391400 839.809998
2021-02-02 842.200012 844.679993 880.500000 872.789978 24346200 872.789978
2021-02-03 853.059998 877.020020 878.080017 854.690002 18343500 854.690002
2021-02-04 833.419983 855.000000 856.500000 849.989990 15812700 849.989990
2021-02-05 838.969971 845.000000 864.770020 852.229980 18524800 852.229980
2021-02-08 854.750000 869.669983 877.770020 863.419983 20161700 863.419983
2021-02-09 841.750000 855.119995 859.799988 849.460022 15157700 849.460022
2021-02-10 800.020020 843.640015 844.820007 804.820007 36216100 804.820007
2021-02-11 801.729980 812.440002 829.880005 811.659973 21580700 811.659973
2021-02-12 785.330017 801.260010 817.330017 816.119995 23701700 816.119995
2021-02-16 792.440002 818.000000 821.000000 796.219971 19686700 796.219971
2021-02-17 762.010010 779.090027 799.840027 798.150024 25633055 798.150024
open high close low volume adjclose
symbol date
NIO 2021-01-04 51.200001 54.450001 53.490002 50.669998 213109700 53.490002
2021-01-05 51.970001 53.750000 53.200001 50.400002 147474800 53.200001
2021-01-06 54.020000 55.279999 50.500000 49.080002 176397700 50.500000
2021-01-07 53.049999 54.610001 54.279999 52.349998 119429200 54.279999
2021-01-08 57.759998 59.310001 58.919998 55.880001 218512800 58.919998
2021-01-11 64.949997 66.989998 62.700001 62.189999 279770300 62.700001
2021-01-12 61.419998 64.129997 62.040001 60.419998 184854200 62.040001
2021-01-13 62.939999 64.410004 62.150002 61.410000 116059200 62.150002
2021-01-14 62.630001 63.230000 60.869999 60.040001 99338400 60.869999
2021-01-15 59.840000 60.220001 56.270000 55.669998 132247900 56.270000
2021-01-19 58.209999 59.009998 58.439999 56.410000 99561100 58.439999
2021-01-20 59.849998 60.090000 57.709999 56.189999 94983600 57.709999
2021-01-21 57.020000 58.580002 58.340000 55.880001 73119500 58.340000
2021-01-22 58.950001 62.169998 61.950001 58.320000 133918100 61.950001
2021-01-25 64.050003 64.519997 59.990002 58.349998 111986400 59.990002
2021-01-26 60.040001 60.669998 60.310001 58.639999 70393300 60.310001
2021-01-27 57.950001 59.790001 57.150002 56.599998 73078300 57.150002
2021-01-28 56.759998 59.459999 58.369999 55.150002 73955100 58.369999
2021-01-29 59.029999 60.709999 57.000000 56.439999 78678200 57.000000
2021-02-01 59.070000 59.119999 56.990002 54.369999 79878700 56.990002
2021-02-02 57.060001 57.540001 55.770000 54.509998 66234100 55.770000
2021-02-03 55.959999 58.720001 57.980000 54.840000 80122300 57.980000
2021-02-04 58.790001 59.200001 57.599998 57.110001 48667900 57.599998
2021-02-05 57.740002 57.980000 56.669998 56.009998 42892500 56.669998
2021-02-08 57.080002 59.520000 59.070000 56.180000 64030100 59.070000
2021-02-09 58.950001 63.099998 62.840000 58.240002 97246500 62.840000
2021-02-10 62.549999 64.599998 61.259998 60.330002 90366700 61.259998
2021-02-11 61.689999 63.060001 60.270000 59.810001 55615500 60.270000
2021-02-12 60.259998 61.049999 59.849998 59.099998 39973800 59.849998
2021-02-16 60.400002 62.139999 59.230000 58.650002 54914800 59.230000
2021-02-17 57.919998 58.029999 57.320000 55.900002 62662494 57.320000
From here I would like to create a dictionary and from that dictionary create a JSON blob. The dictionary should roughly look like:
{
"APPL": {
"2021-01-04": {
"open" : "133.520004",
"adjclose" : "133.520004",
"low" : "133.520004",
"high" : "133.520004"
},
"2021-01-05": {
"open" : "133.520004",
"adjclose" : "133.520004",
"low" : "133.520004",
"high" : "133.520004"
}
}
}
As you can see, I am also wanting to ignore some data and only selecting what I would like.
I have tried a few things and the closest that I have gotten is adding the line:
json_list = json.loads(json.dumps(list(stock_history.T.to_dict().values())))
However this results in the following output:
[{'low': 126.76000213623047, 'open': 133.52000427246094, 'high': 133.61000061035156, 'close': 129.41000366210938, 'volume': 143301900.0, 'adjclose': 129.2169189453125, 'dividends': 0.0}, {'low': 128.42999267578125, 'open': 128.88999938964844, 'high': 131.74000549316406, 'close': 131.00999450683594, 'volume': 97664900.0, 'adjclose': 130.81451416015625, 'dividends': 0.0}, {'low': 126.37999725341797, 'open': 127.72000122070312, 'high': 131.0500030517578, 'close': 126.5999984741211, 'volume': 155088000.0, 'adjclose': 126.41110229492188, 'dividends': 0.0}, {'low': 127.86000061035156, 'open': 128.36000061035156, 'high': 131.6300048828125, 'close': 130.9199981689453, 'volume': 109578200.0, 'adjclose': 130.7246551513672, 'dividends': 0.0}, {'low': 130.22999572753906, 'open': 132.42999267578125, 'high': 132.6300048828125, 'close': 132.0500030517578, 'volume': 105158200.0, 'adjclose': 131.85296630859375, 'dividends': 0.0}, {'low': 128.5, 'open': 129.19000244140625, 'high': 130.1699981689453, 'close': 128.97999572753906, 'volume': 100620900.0, 'adjclose': 128.7875518798828, 'dividends': 0.0}, {'low': 126.86000061035156, 'open': 128.5, 'high': 129.69000244140625, 'close': 128.8000030517578, 'volume': 91951100.0, 'adjclose': 128.60781860351562, 'dividends': 0.0}, {'low': 128.49000549316406, 'open': 128.75999450683594, 'high': 131.4499969482422, 'close': 130.88999938964844, 'volume': 88636800.0, 'adjclose': 130.6947021484375, 'dividends': 0.0}, {'low': 128.75999450683594, 'open': 130.8000030517578, 'high': 131.0, 'close': 128.91000366210938, 'volume': 90221800.0, 'adjclose': 128.71766662597656, 'dividends': 0.0}, {'low': 127.0, 'open': 128.77999877929688, 'high': 130.22000122070312, 'close': 127.13999938964844, 'volume': 111598500.0, 'adjclose': 126.9502944946289, 'dividends': 0.0}, {'low': 126.94000244140625, 'open': 127.77999877929688, 'high': 128.7100067138672, 'close': 127.83000183105469, 'volume': 90757300.0, 'adjclose': 127.63926696777344, 'dividends': 0.0}, {'low': 128.5500030517578, 'open': 128.66000366210938, 'high': 132.49000549316406, 'close': 132.02999877929688, 'volume': 104319500.0, 'adjclose': 131.83299255371094, 'dividends': 0.0}, {'low': 133.58999633789062, 'open': 133.8000030517578, 'high': 139.6699981689453, 'close': 136.8699951171875, 'volume': 120529500.0, 'adjclose': 136.665771484375, 'dividends': 0.0}, {'low': 135.02000427246094, 'open': 136.27999877929688, 'high': 139.85000610351562, 'close': 139.07000732421875, 'volume': 114459400.0, 'adjclose': 138.8625030517578, 'dividends': 0.0}, {'low': 136.5399932861328, 'open': 143.07000732421875, 'high': 145.08999633789062, 'close': 142.9199981689453, 'volume': 157611700.0, 'adjclose': 142.70675659179688, 'dividends': 0.0}, {'low': 141.3699951171875, 'open': 143.60000610351562, 'high': 144.3000030517578, 'close': 143.16000366210938, 'volume': 98390600.0, 'adjclose': 142.94639587402344, 'dividends': 0.0}, {'low': 140.41000366210938, 'open': 143.42999267578125, 'high': 144.3000030517578, 'close': 142.05999755859375, 'volume': 140843800.0, 'adjclose': 141.84803771972656, 'dividends': 0.0}, {'low': 136.6999969482422, 'open': 139.52000427246094, 'high': 141.99000549316406, 'close': 137.08999633789062, 'volume': 142621100.0, 'adjclose': 136.8854522705078, 'dividends': 0.0}, {'low': 130.2100067138672, 'open': 135.8300018310547, 'high': 136.74000549316406, 'close': 131.9600067138672, 'volume': 177180600.0, 'adjclose': 131.7631072998047, 'dividends': 0.0}, {'low': 130.92999267578125, 'open': 133.75, 'high': 135.3800048828125, 'close': 134.13999938964844, 'volume': 106239800.0, 'adjclose': 133.93984985351562, 'dividends': 0.0}, {'low': 134.61000061035156, 'open': 135.72999572753906, 'high': 136.30999755859375, 'close': 134.99000549316406, 'volume': 83305400.0, 'adjclose': 134.78858947753906, 'dividends': 0.0}, {'low': 133.61000061035156, 'open': 135.75999450683594, 'high': 135.77000427246094, 'close': 133.94000244140625, 'volume': 89880900.0, 'adjclose': 133.7401580810547, 'dividends': 0.0}, {'low': 134.58999633789062, 'open': 136.3000030517578, 'high': 137.39999389648438, 'close': 137.38999938964844, 'volume': 84183100.0, 'adjclose': 137.18499755859375, 'dividends': 0.0}, {'low': 135.86000061035156, 'open': 137.35000610351562, 'high': 137.4199981689453, 'close': 136.75999450683594, 'volume': 75524000.0, 'adjclose': 136.75999450683594, 'dividends': 0.205}, {'low': 134.9199981689453, 'open': 136.02999877929688, 'high': 136.9600067138672, 'close': 136.91000366210938, 'volume': 71297200.0, 'adjclose': 136.91000366210938, 'dividends': 0.0},
{'low': 135.85000610351562, 'open': 136.6199951171875, 'high': 137.8800048828125, 'close': 136.00999450683594, 'volume': 76774200.0, 'adjclose': 136.00999450683594, 'dividends': 0.0}, {'low': 134.39999389648438, 'open': 136.47999572753906, 'high': 136.99000549316406, 'close': 135.38999938964844, 'volume': 73046600.0, 'adjclose': 135.38999938964844,
'dividends': 0.0}, {'low': 133.77000427246094, 'open': 135.89999389648438, 'high': 136.38999938964844, 'close': 135.1300048828125, 'volume': 64154400.0, 'adjclose': 135.1300048828125, 'dividends': 0.0}, {'low': 133.69000244140625, 'open': 134.35000610351562, 'high': 135.52999877929688, 'close': 135.3699951171875, 'volume': 60029300.0, 'adjclose': 135.3699951171875, 'dividends': 0.0}, {'low': 132.7899932861328, 'open': 135.49000549316406, 'high': 136.00999450683594, 'close': 133.19000244140625, 'volume': 80206200.0, 'adjclose': 133.19000244140625, 'dividends': 0.0}, {'low': 129.47000122070312, 'open': 131.25, 'high': 132.22000122070312, 'close': 130.83999633789062, 'volume': 95934652.0, 'adjclose': 130.83999633789062, 'dividends': 0.0}]
[{'open': 719.4600219726562, 'volume': 48638200.0, 'high': 744.489990234375, 'close': 729.77001953125, 'low': 717.1900024414062, 'adjclose': 729.77001953125}, {'open': 723.6599731445312, 'volume': 32245200.0, 'high': 740.8400268554688, 'close': 735.1099853515625, 'low': 719.2000122070312, 'adjclose': 735.1099853515625}, {'open': 758.489990234375, 'volume': 44700000.0, 'high': 774.0, 'close': 755.97998046875, 'low': 749.0999755859375, 'adjclose': 755.97998046875}, {'open': 777.6300048828125, 'volume': 51498900.0, 'high': 816.989990234375, 'close': 816.0399780273438, 'low': 775.2000122070312, 'adjclose': 816.0399780273438}, {'open': 856.0, 'volume': 75055500.0, 'high': 884.489990234375, 'close': 880.02001953125, 'low': 838.3900146484375, 'adjclose': 880.02001953125}, {'open': 849.4000244140625, 'volume': 59554100.0, 'high': 854.4299926757812, 'close': 811.1900024414062, 'low': 803.6199951171875, 'adjclose': 811.1900024414062}, {'open': 831.0, 'volume': 46270700.0, 'high': 868.0, 'close': 849.4400024414062, 'low': 827.3400268554688, 'adjclose': 849.4400024414062}, {'open': 852.760009765625, 'volume': 33312500.0, 'high': 860.469970703125, 'close': 854.4099731445312, 'low': 832.0, 'adjclose': 854.4099731445312}, {'open': 843.3900146484375, 'volume': 31266300.0, 'high': 863.0, 'close': 845.0, 'low': 838.75, 'adjclose': 845.0}, {'open': 852.0, 'volume': 38777600.0, 'high': 859.9000244140625, 'close': 826.1599731445312, 'low': 819.0999755859375, 'adjclose': 826.1599731445312}, {'open': 837.7999877929688, 'volume': 25367000.0, 'high': 850.0, 'close': 844.5499877929688, 'low': 833.0, 'adjclose': 844.5499877929688}, {'open': 858.739990234375, 'volume': 25665900.0, 'high': 859.5, 'close': 850.4500122070312, 'low': 837.280029296875, 'adjclose': 850.4500122070312}, {'open': 855.0, 'volume': 20598100.0, 'high': 855.719970703125, 'close': 844.989990234375, 'low': 841.4199829101562, 'adjclose': 844.989990234375}, {'open': 834.3099975585938, 'volume': 20066500.0, 'high': 848.0, 'close': 846.6400146484375, 'low': 828.6199951171875, 'adjclose': 846.6400146484375}, {'open': 855.0, 'volume': 41173400.0, 'high': 900.4000244140625, 'close': 880.7999877929688, 'low': 838.8200073242188, 'adjclose': 880.7999877929688}, {'open': 891.3800048828125, 'volume': 23131600.0, 'high': 895.9000244140625, 'close': 883.0900268554688, 'low': 871.5999755859375, 'adjclose': 883.0900268554688}, {'open': 870.3499755859375, 'volume': 27334000.0, 'high': 891.5, 'close': 864.1599731445312, 'low': 858.6599731445312, 'adjclose': 864.1599731445312}, {'open': 820.0, 'volume': 26378000.0, 'high': 848.0, 'close': 835.4299926757812, 'low': 801.0, 'adjclose': 835.4299926757812}, {'open': 830.0, 'volume': 34990800.0, 'high': 842.4099731445312, 'close': 793.530029296875, 'low': 780.0999755859375, 'adjclose': 793.530029296875}, {'open': 814.2899780273438, 'volume': 25391400.0, 'high': 842.0, 'close': 839.8099975585938, 'low': 795.5599975585938, 'adjclose': 839.8099975585938}, {'open': 844.6799926757812, 'volume': 24346200.0, 'high': 880.5, 'close': 872.7899780273438, 'low': 842.2000122070312, 'adjclose': 872.7899780273438}, {'open': 877.02001953125, 'volume': 18343500.0, 'high': 878.0800170898438, 'close': 854.6900024414062, 'low': 853.0599975585938, 'adjclose': 854.6900024414062}, {'open': 855.0, 'volume': 15812700.0, 'high': 856.5, 'close': 849.989990234375, 'low': 833.4199829101562, 'adjclose': 849.989990234375}, {'open': 845.0, 'volume': 18524800.0, 'high': 864.77001953125, 'close': 852.22998046875, 'low': 838.969970703125, 'adjclose': 852.22998046875}, {'open': 869.6699829101562, 'volume': 20161700.0, 'high': 877.77001953125, 'close': 863.4199829101562, 'low': 854.75, 'adjclose': 863.4199829101562}, {'open': 855.1199951171875, 'volume': 15157700.0, 'high': 859.7999877929688, 'close': 849.4600219726562, 'low': 841.75, 'adjclose': 849.4600219726562}, {'open': 843.6400146484375, 'volume': 36216100.0, 'high': 844.8200073242188, 'close': 804.8200073242188, 'low': 800.02001953125, 'adjclose': 804.8200073242188}, {'open': 812.4400024414062, 'volume': 21580700.0, 'high': 829.8800048828125, 'close': 811.6599731445312, 'low': 801.72998046875, 'adjclose': 811.6599731445312}, {'open': 801.260009765625, 'volume': 23701700.0, 'high': 817.3300170898438, 'close': 816.1199951171875, 'low': 785.3300170898438, 'adjclose': 816.1199951171875}, {'open': 818.0, 'volume': 19686700.0, 'high': 821.0, 'close': 796.219970703125, 'low': 792.4400024414062, 'adjclose': 796.219970703125}, {'open': 779.0900268554688, 'volume': 25633055.0, 'high': 799.8400268554688, 'close': 798.1500244140625, 'low': 762.010009765625, 'adjclose': 798.1500244140625}]
[{'open': 51.20000076293945, 'high': 54.45000076293945, 'close': 53.4900016784668, 'low': 50.66999816894531, 'volume': 213109700.0, 'adjclose': 53.4900016784668}, {'open': 51.970001220703125, 'high': 53.75, 'close': 53.20000076293945, 'low': 50.400001525878906, 'volume': 147474800.0, 'adjclose': 53.20000076293945}, {'open': 54.02000045776367, 'high': 55.279998779296875, 'close': 50.5, 'low': 49.08000183105469, 'volume': 176397700.0, 'adjclose': 50.5}, {'open': 53.04999923706055, 'high': 54.61000061035156, 'close': 54.279998779296875, 'low': 52.349998474121094, 'volume': 119429200.0, 'adjclose': 54.279998779296875}, {'open': 57.7599983215332, 'high': 59.310001373291016, 'close': 58.91999816894531, 'low': 55.880001068115234, 'volume': 218512800.0, 'adjclose': 58.91999816894531}, {'open': 64.94999694824219, 'high': 66.98999786376953, 'close': 62.70000076293945, 'low': 62.189998626708984, 'volume': 279770300.0, 'adjclose': 62.70000076293945}, {'open': 61.41999816894531, 'high': 64.12999725341797, 'close': 62.040000915527344, 'low': 60.41999816894531, 'volume': 184854200.0, 'adjclose': 62.040000915527344}, {'open': 62.939998626708984, 'high': 64.41000366210938, 'close': 62.150001525878906, 'low': 61.40999984741211, 'volume': 116059200.0, 'adjclose': 62.150001525878906}, {'open': 62.630001068115234, 'high': 63.22999954223633, 'close': 60.869998931884766, 'low': 60.040000915527344, 'volume': 99338400.0, 'adjclose': 60.869998931884766}, {'open': 59.84000015258789, 'high': 60.220001220703125, 'close': 56.27000045776367, 'low': 55.66999816894531, 'volume': 132247900.0, 'adjclose': 56.27000045776367}, {'open': 58.209999084472656, 'high': 59.0099983215332, 'close': 58.439998626708984, 'low': 56.40999984741211, 'volume': 99561100.0, 'adjclose': 58.439998626708984}, {'open': 59.849998474121094, 'high': 60.09000015258789, 'close': 57.709999084472656, 'low': 56.189998626708984, 'volume': 94983600.0, 'adjclose': 57.709999084472656}, {'open': 57.02000045776367, 'high': 58.58000183105469, 'close': 58.34000015258789, 'low': 55.880001068115234, 'volume': 73119500.0, 'adjclose': 58.34000015258789}, {'open': 58.95000076293945, 'high': 62.16999816894531, 'close': 61.95000076293945, 'low': 58.31999969482422, 'volume': 133918100.0, 'adjclose': 61.95000076293945}, {'open': 64.05000305175781, 'high': 64.5199966430664, 'close': 59.9900016784668, 'low': 58.349998474121094, 'volume': 111986400.0, 'adjclose': 59.9900016784668}, {'open': 60.040000915527344, 'high': 60.66999816894531, 'close': 60.310001373291016, 'low': 58.63999938964844, 'volume': 70393300.0, 'adjclose': 60.310001373291016}, {'open': 57.95000076293945, 'high': 59.790000915527344, 'close': 57.150001525878906, 'low': 56.599998474121094, 'volume': 73078300.0, 'adjclose': 57.150001525878906}, {'open': 56.7599983215332, 'high':
59.459999084472656, 'close': 58.369998931884766, 'low': 55.150001525878906, 'volume': 73955100.0, 'adjclose': 58.369998931884766}, {'open': 59.029998779296875, 'high': 60.709999084472656, 'close': 57.0, 'low': 56.439998626708984, 'volume': 78678200.0, 'adjclose': 57.0}, {'open': 59.06999969482422, 'high': 59.119998931884766, 'close': 56.9900016784668, 'low': 54.369998931884766, 'volume': 79878700.0, 'adjclose': 56.9900016784668}, {'open': 57.060001373291016, 'high': 57.540000915527344, 'close': 55.77000045776367, 'low': 54.5099983215332, 'volume': 66234100.0, 'adjclose': 55.77000045776367}, {'open': 55.959999084472656, 'high': 58.720001220703125, 'close': 57.97999954223633, 'low': 54.84000015258789, 'volume': 80122300.0, 'adjclose': 57.97999954223633}, {'open': 58.790000915527344, 'high': 59.20000076293945, 'close': 57.599998474121094, 'low': 57.11000061035156, 'volume': 48667900.0, 'adjclose': 57.599998474121094}, {'open': 57.7400016784668, 'high': 57.97999954223633, 'close': 56.66999816894531, 'low': 56.0099983215332, 'volume': 42892500.0, 'adjclose': 56.66999816894531}, {'open': 57.08000183105469, 'high': 59.52000045776367, 'close': 59.06999969482422, 'low': 56.18000030517578, 'volume': 64030100.0, 'adjclose': 59.06999969482422}, {'open': 58.95000076293945, 'high': 63.099998474121094, 'close': 62.84000015258789, 'low': 58.2400016784668, 'volume': 97246500.0, 'adjclose': 62.84000015258789}, {'open': 62.54999923706055, 'high': 64.5999984741211, 'close': 61.2599983215332, 'low': 60.33000183105469, 'volume': 90366700.0, 'adjclose': 61.2599983215332}, {'open': 61.689998626708984, 'high': 63.060001373291016, 'close': 60.27000045776367, 'low': 59.810001373291016, 'volume': 55615500.0, 'adjclose': 60.27000045776367}, {'open': 60.2599983215332, 'high': 61.04999923706055, 'close': 59.849998474121094, 'low': 59.099998474121094, 'volume': 39973800.0, 'adjclose': 59.849998474121094}, {'open': 60.400001525878906, 'high': 62.13999938964844, 'close': 59.22999954223633, 'low': 58.650001525878906, 'volume': 54914800.0, 'adjclose': 59.22999954223633}, {'open': 57.91999816894531, 'high': 58.029998779296875, 'close': 57.31999969482422, 'low': 55.900001525878906, 'volume': 62662494.0, 'adjclose': 57.31999969482422}]
Any direction or advice would be highly appreciated.
Upvotes: 0
Views: 63
Reputation: 2803
The data structure you are getting is a MultiIndex DataFrame, which you can iterate over like this (thanks to this discussion):
for idx, df_select in stock_history.groupby(level=[0, 1]):
print(idx[0])
print(idx[1])
print(df_select['open'][0])
As you can see, idx[0]
is the symbol, idx[1]
is the date, and df_select
is a DataFrame with the actual content.
So you can create a nested dictionary and a JSON object like this (shown for high
and low
only to keep the example readable):
dict = { idx[0] : [{ str(idx[1]) : { 'high' : df_select['high'][0], 'low' : df_select['low'][0] } } for idx, df_select in stock_history.groupby(level=[0, 1])]}
print(json.dumps(dict, indent=4))
Upvotes: 1