0

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.

1 Answer 1

1

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))
Sign up to request clarification or add additional context in comments.

2 Comments

I am using this, and it is working, but my editor keeps telling me that "def_select" is not accessed even though it is, any ideas?
Strange... unfortunately I have no ideas either.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.