Module 3 - Day 2

Login to Lab using your credentials. There is a notebook with name 3-2.ipynb already created for you. Open that and use it for today’s training.

Shut down all previous notebooks.

You can access live notes from https://live.arcesium-lab.pipal.in

Virtual Environment

Virtual Environment

Many times it happens that different projects have requirements of python packages such that they conflict each other. In such cases how do you work on two different project on same machine? If we install python packages for one project, those packages will confict with other projects. Virtual environment is there to help us. Virtual environment allows us to have set of python packages seperately for each project. Also added advantage is, it won’t affect system python’s packages. The way to handle this is with help of venv module we create virtual environment for each project. All requirements for the proejct are installed in the virtual environment and not in system python’s packages. Let’s take some examples.

Conflicting Requirements

Suppose we have two projects, datascraping and analytics. For datascraping project requirements are following packages::

requests==2.24.0 openpyxl==2.4.8

and analytics project needs following packages::

pandas==1.1.2 openpyxl==3.0.5 requests==2.24.0

Now here is confiliting requirement, one project needs openpyxl verson 2.4.8 and other needs 3.0.5.

creating evenv

To create virutal environment on your system, what you need is python version > 3.5. Python comes with a package called venv (virtual environment). For older python, virtualenv was seperate application. We are going to work with virtual environment that comes with python 3. Easy steps to work with it are as given below. Open up terminal on linux/mac or cmd terminal on windows. on the prompt type following command to create virtual environment with name env1::

  python -m venv env1

This will create a folder with name env1 in the current directory. On linux it will have following contents::

  +-env1
    |
    +-bin
    +-include
    +-lib
    +-lib64
    +-pyenv.cfg

on windows system it will have following contents::

  +-env1
    |
    +-Include
    +-Lib
    +-Scripts
    +-pyenv.cfg

To activate virtual environment on linux run following command on terminal.::

  bash$ source env1/bin/activate
  (env1) bash$ # you can see the env1 environment activated as change in prompt

To activate virtual environment on windows run following command on windows cmd terminal::

  C:\Users\vik> env1\bin\activate.bat
  (env1) C:\Users\vik>

Installing packages in virtual environment

Once the virtul environment is created and activated, we are ready to use it. To install packages in this active virtual environment use pip install::

  pip install typer
  Collecting typer
    Using cached https://files.pythonhosted.org/packages/90/34/d138832f6945432c638f32137e6c79a3b682f06a63c488dcfaca6b166c64/typer-0.3.2-py3-none-any.whl
  Collecting click<7.2.0,>=7.1.1 (from typer)
    Using cached https://files.pythonhosted.org/packages/d2/3d/fa76db83bf75c4f8d338c2fd15c8d33fdd7ad23a9b5e57eb6c5de26b430e/click-7.1.2-py2.py3-none-any.whl
  Installing collected packages: click, typer
  Successfully installed click-7.1.2 typer-0.3.2

to check packages installed ::

  pip list
  Package    Version
  ---------- -------
  click      7.1.2
  pip        19.2.3
  setuptools 41.2.0
  typer      0.3.2

requirements.txt

If we want to replicate exact same virtual environment on other machine we need list of packages that pip can understand. The format is called as requirements file. it can be generated using::

  pip freeze
  click==7.1.2
  typer==0.3.2

The output can be saved to a file with name requirements.txt. This file can be used in other virtual env to recreate the same environment. For example, lets make use of above requirements to recreate another environment with name env1copy::

  bash$ python -m venv env1copy
  bash$ source env1copy/bin/activate
  (env1copy) bash$ pip install -r requirements.txt
  Collecting click==7.1.2 (from -r env1/requirements.txt (line 1))
    Using cached https://files.pythonhosted.org/packages/d2/3d/fa76db83bf75c4f8d338c2fd15c8d33fdd7ad23a9b5e57eb6c5de26b430e/click-7.1.2-py2.py3-none-any.whl
  Collecting typer==0.3.2 (from -r env1/requirements.txt (line 2))
    Using cached https://files.pythonhosted.org/packages/90/34/d138832f6945432c638f32137e6c79a3b682f06a63c488dcfaca6b166c64/typer-0.3.2-py3-none-any.whl
  Installing collected packages: click, typer
  Successfully installed click-7.1.2 typer-0.3.2

you can check the packages installed::

  pip freeze
  click==7.1.2
  typer==0.3.2

Summary

  1. Virtual environment can be created by any user. No admin privileges required.
  2. Every virtual environment is stored in seperate folder.
  3. Packages installed in a virtual environment are only in that particular virtual environment.
  4. With requirements.txt it is very easy to recreate the same replica of a particular virtul environment.

Json

text format of list and dictionaries. At first site you might confused that does it look like python lists and dictionary

"[1, 2, 3, 4, 5]"
l = [1, 2, 3, 4, 5, 6]
l
[1, 2, 3, 4, 5, 6]
print(l)
[1, 2, 3, 4, 5, 6]
%%file words.json
["one", "two", "three", "four"]
Overwriting words.json
import json 

with open("words.json") as f:
    jsondata = f.read().strip()
jsondata
'["one", "two", "three", "four"]'
for word in jsondata: # this will treat it as seq char!
    print(word, sep=",", end=",")
[,",o,n,e,",,, ,",t,w,o,",,, ,",t,h,r,e,e,",,, ,",f,o,u,r,",],
pythondata = json.loads(jsondata)
data = ["one", "two", "three", "four", "five"]
json.dumps(data)
'["one", "two", "three", "four", "five"]'
json.loads(json.dumps(data))
['one', 'two', 'three', 'four', 'five']

nested json data

%%file menu.json
{
    "id": "0001",
    "type": "donut",
    "name": "Cake",
    "ppu": 0.55,
    "batters":
        {
            "batter":
                [
                    { "id": "1001", "type": "Regular" },
                    { "id": "1002", "type": "Chocolate" },
                    { "id": "1003", "type": "Blueberry" },
                    { "id": "1004", "type": "Devil's Food" }
                ]
        },
    "topping":
        [
            { "id": "5001", "type": "None" },
            { "id": "5002", "type": "Glazed" },
            { "id": "5005", "type": "Sugar" },
            { "id": "5007", "type": "Powdered Sugar" },
            { "id": "5006", "type": "Chocolate with Sprinkles" },
            { "id": "5003", "type": "Chocolate" },
            { "id": "5004", "type": "Maple" }
        ]
}
Writing menu.json
with open("menu.json") as f:
    menu_jsondata = f.read()
menu_jsondata
'{\n\t"id": "0001",\n\t"type": "donut",\n\t"name": "Cake",\n\t"ppu": 0.55,\n\t"batters":\n\t\t{\n\t\t\t"batter":\n\t\t\t\t[\n\t\t\t\t\t{ "id": "1001", "type": "Regular" },\n\t\t\t\t\t{ "id": "1002", "type": "Chocolate" },\n\t\t\t\t\t{ "id": "1003", "type": "Blueberry" },\n\t\t\t\t\t{ "id": "1004", "type": "Devil\'s Food" }\n\t\t\t\t]\n\t\t},\n\t"topping":\n\t\t[\n\t\t\t{ "id": "5001", "type": "None" },\n\t\t\t{ "id": "5002", "type": "Glazed" },\n\t\t\t{ "id": "5005", "type": "Sugar" },\n\t\t\t{ "id": "5007", "type": "Powdered Sugar" },\n\t\t\t{ "id": "5006", "type": "Chocolate with Sprinkles" },\n\t\t\t{ "id": "5003", "type": "Chocolate" },\n\t\t\t{ "id": "5004", "type": "Maple" }\n\t\t]\n}\n'

menu = json.loads(menu_jsondata)
type(menu)
dict
for key, value in menu.items():
    print(key)
id
type
name
ppu
batters
topping
menu['name']
'Cake'

Data from stocks website

%%file ibm.json
{
    "Meta Data": {
        "1. Information": "Intraday (5min) open, high, low, close prices and volume",
        "2. Symbol": "IBM",
        "3. Last Refreshed": "2024-08-20 19:55:00",
        "4. Interval": "5min",
        "5. Output Size": "Compact",
        "6. Time Zone": "US/Eastern"
    },
    "Time Series (5min)": {
        "2024-08-20 19:55:00": {
            "1. open": "195.9800",
            "2. high": "195.9900",
            "3. low": "195.9800",
            "4. close": "195.9900",
            "5. volume": "35"
        },
        "2024-08-20 19:50:00": {
            "1. open": "195.9800",
            "2. high": "195.9800",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "299"
        },
        "2024-08-20 19:35:00": {
            "1. open": "196.0000",
            "2. high": "196.0000",
            "3. low": "196.0000",
            "4. close": "196.0000",
            "5. volume": "25"
        },
        "2024-08-20 19:30:00": {
            "1. open": "196.0000",
            "2. high": "196.0000",
            "3. low": "196.0000",
            "4. close": "196.0000",
            "5. volume": "1"
        },
        "2024-08-20 19:20:00": {
            "1. open": "195.9800",
            "2. high": "195.9800",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "106"
        },
        "2024-08-20 19:15:00": {
            "1. open": "195.9800",
            "2. high": "195.9800",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "4"
        },
        "2024-08-20 19:10:00": {
            "1. open": "195.9900",
            "2. high": "195.9900",
            "3. low": "195.9900",
            "4. close": "195.9900",
            "5. volume": "7"
        },
        "2024-08-20 19:05:00": {
            "1. open": "196.0000",
            "2. high": "196.0000",
            "3. low": "196.0000",
            "4. close": "196.0000",
            "5. volume": "2"
        },
        "2024-08-20 19:00:00": {
            "1. open": "196.0300",
            "2. high": "196.0300",
            "3. low": "195.9900",
            "4. close": "195.9900",
            "5. volume": "343873"
        },
        "2024-08-20 18:50:00": {
            "1. open": "195.9900",
            "2. high": "195.9900",
            "3. low": "195.9900",
            "4. close": "195.9900",
            "5. volume": "1"
        },
        "2024-08-20 18:45:00": {
            "1. open": "196.0000",
            "2. high": "196.0000",
            "3. low": "196.0000",
            "4. close": "196.0000",
            "5. volume": "5"
        },
        "2024-08-20 18:40:00": {
            "1. open": "195.9800",
            "2. high": "195.9800",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "100"
        },
        "2024-08-20 18:30:00": {
            "1. open": "196.0300",
            "2. high": "196.0300",
            "3. low": "196.0300",
            "4. close": "196.0300",
            "5. volume": "343867"
        },
        "2024-08-20 18:25:00": {
            "1. open": "196.0000",
            "2. high": "196.0000",
            "3. low": "196.0000",
            "4. close": "196.0000",
            "5. volume": "6"
        },
        "2024-08-20 18:20:00": {
            "1. open": "196.0000",
            "2. high": "196.0000",
            "3. low": "196.0000",
            "4. close": "196.0000",
            "5. volume": "1"
        },
        "2024-08-20 18:15:00": {
            "1. open": "195.9900",
            "2. high": "195.9900",
            "3. low": "195.9900",
            "4. close": "195.9900",
            "5. volume": "1"
        },
        "2024-08-20 18:10:00": {
            "1. open": "195.9900",
            "2. high": "195.9900",
            "3. low": "195.9900",
            "4. close": "195.9900",
            "5. volume": "7"
        },
        "2024-08-20 18:05:00": {
            "1. open": "195.9800",
            "2. high": "195.9800",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "25"
        },
        "2024-08-20 18:00:00": {
            "1. open": "196.0050",
            "2. high": "196.0050",
            "3. low": "196.0000",
            "4. close": "196.0000",
            "5. volume": "50"
        },
        "2024-08-20 17:50:00": {
            "1. open": "196.0290",
            "2. high": "196.0300",
            "3. low": "196.0290",
            "4. close": "196.0300",
            "5. volume": "21"
        },
        "2024-08-20 17:45:00": {
            "1. open": "196.0300",
            "2. high": "196.0300",
            "3. low": "196.0200",
            "4. close": "196.0200",
            "5. volume": "2"
        },
        "2024-08-20 17:35:00": {
            "1. open": "195.9800",
            "2. high": "195.9800",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "180"
        },
        "2024-08-20 17:25:00": {
            "1. open": "195.9800",
            "2. high": "195.9800",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "1"
        },
        "2024-08-20 17:20:00": {
            "1. open": "196.0000",
            "2. high": "196.0000",
            "3. low": "196.0000",
            "4. close": "196.0000",
            "5. volume": "6"
        },
        "2024-08-20 17:10:00": {
            "1. open": "196.0300",
            "2. high": "196.0300",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "10206"
        },
        "2024-08-20 17:05:00": {
            "1. open": "195.9800",
            "2. high": "195.9800",
            "3. low": "195.9800",
            "4. close": "195.9800",
            "5. volume": "4"
        },
        "2024-08-20 16:55:00": {
            "1. open": "196.2320",
            "2. high": "196.2320",
            "3. low": "196.2320",
            "4. close": "196.2320",
            "5. volume": "35"
        },
        "2024-08-20 16:50:00": {
            "1. open": "195.9500",
            "2. high": "195.9500",
            "3. low": "195.9500",
            "4. close": "195.9500",
            "5. volume": "1"
        },
        "2024-08-20 16:35:00": {
            "1. open": "195.7800",
            "2. high": "195.7800",
            "3. low": "195.7800",
            "4. close": "195.7800",
            "5. volume": "15"
        },
        "2024-08-20 16:30:00": {
            "1. open": "196.2500",
            "2. high": "196.2500",
            "3. low": "195.7800",
            "4. close": "195.7800",
            "5. volume": "3"
        },
        "2024-08-20 16:25:00": {
            "1. open": "196.0300",
            "2. high": "196.2370",
            "3. low": "195.9500",
            "4. close": "196.2370",
            "5. volume": "684"
        },
        "2024-08-20 16:20:00": {
            "1. open": "196.0300",
            "2. high": "196.0300",
            "3. low": "196.0300",
            "4. close": "196.0300",
            "5. volume": "1032"
        },
        "2024-08-20 16:15:00": {
            "1. open": "196.0300",
            "2. high": "196.0300",
            "3. low": "195.9700",
            "4. close": "195.9700",
            "5. volume": "3"
        },
        "2024-08-20 16:10:00": {
            "1. open": "196.0300",
            "2. high": "196.0300",
            "3. low": "194.9700",
            "4. close": "195.9700",
            "5. volume": "344465"
        },
        "2024-08-20 16:05:00": {
            "1. open": "196.0300",
            "2. high": "196.2400",
            "3. low": "195.6500",
            "4. close": "196.0300",
            "5. volume": "3728"
        },
        "2024-08-20 16:00:00": {
            "1. open": "196.0500",
            "2. high": "196.1800",
            "3. low": "194.0200",
            "4. close": "196.1700",
            "5. volume": "768002"
        },
        "2024-08-20 15:55:00": {
            "1. open": "195.4900",
            "2. high": "196.2100",
            "3. low": "195.4700",
            "4. close": "196.0500",
            "5. volume": "261688"
        },
        "2024-08-20 15:50:00": {
            "1. open": "195.5200",
            "2. high": "195.6400",
            "3. low": "195.2900",
            "4. close": "195.5290",
            "5. volume": "52582"
        },
        "2024-08-20 15:45:00": {
            "1. open": "195.7300",
            "2. high": "195.7500",
            "3. low": "195.4510",
            "4. close": "195.4950",
            "5. volume": "52354"
        },
        "2024-08-20 15:40:00": {
            "1. open": "195.7900",
            "2. high": "195.8400",
            "3. low": "195.7100",
            "4. close": "195.7490",
            "5. volume": "23192"
        },
        "2024-08-20 15:35:00": {
            "1. open": "195.8800",
            "2. high": "195.8800",
            "3. low": "195.7600",
            "4. close": "195.8100",
            "5. volume": "25890"
        },
        "2024-08-20 15:30:00": {
            "1. open": "195.8300",
            "2. high": "195.8790",
            "3. low": "195.7300",
            "4. close": "195.8600",
            "5. volume": "21745"
        },
        "2024-08-20 15:25:00": {
            "1. open": "195.7900",
            "2. high": "195.8500",
            "3. low": "195.7490",
            "4. close": "195.8200",
            "5. volume": "13682"
        },
        "2024-08-20 15:20:00": {
            "1. open": "195.8770",
            "2. high": "195.9000",
            "3. low": "195.7100",
            "4. close": "195.7900",
            "5. volume": "12833"
        },
        "2024-08-20 15:15:00": {
            "1. open": "195.8700",
            "2. high": "195.8900",
            "3. low": "195.7400",
            "4. close": "195.8650",
            "5. volume": "17838"
        },
        "2024-08-20 15:10:00": {
            "1. open": "195.7900",
            "2. high": "195.9200",
            "3. low": "195.7800",
            "4. close": "195.8680",
            "5. volume": "17747"
        },
        "2024-08-20 15:05:00": {
            "1. open": "195.7100",
            "2. high": "195.8000",
            "3. low": "195.7100",
            "4. close": "195.8000",
            "5. volume": "14138"
        },
        "2024-08-20 15:00:00": {
            "1. open": "195.7000",
            "2. high": "195.7700",
            "3. low": "195.6900",
            "4. close": "195.7150",
            "5. volume": "9247"
        },
        "2024-08-20 14:55:00": {
            "1. open": "195.7800",
            "2. high": "195.8100",
            "3. low": "195.7300",
            "4. close": "195.7300",
            "5. volume": "11581"
        },
        "2024-08-20 14:50:00": {
            "1. open": "195.6850",
            "2. high": "195.8000",
            "3. low": "195.6750",
            "4. close": "195.7600",
            "5. volume": "16633"
        },
        "2024-08-20 14:45:00": {
            "1. open": "195.5900",
            "2. high": "195.7100",
            "3. low": "195.5900",
            "4. close": "195.6750",
            "5. volume": "11283"
        },
        "2024-08-20 14:40:00": {
            "1. open": "195.7000",
            "2. high": "195.7000",
            "3. low": "195.5800",
            "4. close": "195.5800",
            "5. volume": "14355"
        },
        "2024-08-20 14:35:00": {
            "1. open": "195.6700",
            "2. high": "195.7400",
            "3. low": "195.6700",
            "4. close": "195.7000",
            "5. volume": "10847"
        },
        "2024-08-20 14:30:00": {
            "1. open": "195.6700",
            "2. high": "195.7100",
            "3. low": "195.6000",
            "4. close": "195.6700",
            "5. volume": "12551"
        },
        "2024-08-20 14:25:00": {
            "1. open": "195.5750",
            "2. high": "195.7240",
            "3. low": "195.5100",
            "4. close": "195.6700",
            "5. volume": "12659"
        },
        "2024-08-20 14:20:00": {
            "1. open": "195.5200",
            "2. high": "195.6200",
            "3. low": "195.5000",
            "4. close": "195.6000",
            "5. volume": "8475"
        },
        "2024-08-20 14:15:00": {
            "1. open": "195.5800",
            "2. high": "195.6100",
            "3. low": "195.5100",
            "4. close": "195.5200",
            "5. volume": "6932"
        },
        "2024-08-20 14:10:00": {
            "1. open": "195.4000",
            "2. high": "195.5900",
            "3. low": "195.4000",
            "4. close": "195.5200",
            "5. volume": "8562"
        },
        "2024-08-20 14:05:00": {
            "1. open": "195.2950",
            "2. high": "195.4300",
            "3. low": "195.2300",
            "4. close": "195.4200",
            "5. volume": "7865"
        },
        "2024-08-20 14:00:00": {
            "1. open": "195.1900",
            "2. high": "195.3500",
            "3. low": "195.1300",
            "4. close": "195.2800",
            "5. volume": "14069"
        },
        "2024-08-20 13:55:00": {
            "1. open": "195.1200",
            "2. high": "195.1700",
            "3. low": "195.1100",
            "4. close": "195.1700",
            "5. volume": "3865"
        },
        "2024-08-20 13:50:00": {
            "1. open": "195.1000",
            "2. high": "195.1500",
            "3. low": "195.0500",
            "4. close": "195.1200",
            "5. volume": "14232"
        },
        "2024-08-20 13:45:00": {
            "1. open": "195.3100",
            "2. high": "195.3300",
            "3. low": "195.1500",
            "4. close": "195.1750",
            "5. volume": "11634"
        },
        "2024-08-20 13:40:00": {
            "1. open": "195.3450",
            "2. high": "195.3900",
            "3. low": "195.3100",
            "4. close": "195.3400",
            "5. volume": "11062"
        },
        "2024-08-20 13:35:00": {
            "1. open": "195.4800",
            "2. high": "195.4800",
            "3. low": "195.2900",
            "4. close": "195.3350",
            "5. volume": "10018"
        },
        "2024-08-20 13:30:00": {
            "1. open": "195.5900",
            "2. high": "195.6100",
            "3. low": "195.4900",
            "4. close": "195.5050",
            "5. volume": "8854"
        },
        "2024-08-20 13:25:00": {
            "1. open": "195.5750",
            "2. high": "195.6400",
            "3. low": "195.4800",
            "4. close": "195.5600",
            "5. volume": "12037"
        },
        "2024-08-20 13:20:00": {
            "1. open": "195.6000",
            "2. high": "195.6500",
            "3. low": "195.5500",
            "4. close": "195.6000",
            "5. volume": "16260"
        },
        "2024-08-20 13:15:00": {
            "1. open": "195.5000",
            "2. high": "195.5800",
            "3. low": "195.4680",
            "4. close": "195.5700",
            "5. volume": "16144"
        },
        "2024-08-20 13:10:00": {
            "1. open": "195.3750",
            "2. high": "195.5500",
            "3. low": "195.3650",
            "4. close": "195.5000",
            "5. volume": "18888"
        },
        "2024-08-20 13:05:00": {
            "1. open": "195.2350",
            "2. high": "195.3800",
            "3. low": "195.2050",
            "4. close": "195.3800",
            "5. volume": "5488"
        },
        "2024-08-20 13:00:00": {
            "1. open": "195.3700",
            "2. high": "195.3700",
            "3. low": "195.1600",
            "4. close": "195.2300",
            "5. volume": "8255"
        },
        "2024-08-20 12:55:00": {
            "1. open": "195.4790",
            "2. high": "195.4930",
            "3. low": "195.3600",
            "4. close": "195.3800",
            "5. volume": "9441"
        },
        "2024-08-20 12:50:00": {
            "1. open": "195.4550",
            "2. high": "195.4800",
            "3. low": "195.4140",
            "4. close": "195.4140",
            "5. volume": "7033"
        },
        "2024-08-20 12:45:00": {
            "1. open": "195.4250",
            "2. high": "195.4600",
            "3. low": "195.3850",
            "4. close": "195.4550",
            "5. volume": "6749"
        },
        "2024-08-20 12:40:00": {
            "1. open": "195.5480",
            "2. high": "195.5600",
            "3. low": "195.3610",
            "4. close": "195.4400",
            "5. volume": "9811"
        },
        "2024-08-20 12:35:00": {
            "1. open": "195.4200",
            "2. high": "195.5200",
            "3. low": "195.3400",
            "4. close": "195.5100",
            "5. volume": "8085"
        },
        "2024-08-20 12:30:00": {
            "1. open": "195.4050",
            "2. high": "195.4380",
            "3. low": "195.3300",
            "4. close": "195.3900",
            "5. volume": "9071"
        },
        "2024-08-20 12:25:00": {
            "1. open": "195.3400",
            "2. high": "195.4100",
            "3. low": "195.3150",
            "4. close": "195.3900",
            "5. volume": "5532"
        },
        "2024-08-20 12:20:00": {
            "1. open": "195.2750",
            "2. high": "195.3400",
            "3. low": "195.1500",
            "4. close": "195.3400",
            "5. volume": "12053"
        },
        "2024-08-20 12:15:00": {
            "1. open": "195.3500",
            "2. high": "195.3500",
            "3. low": "195.2300",
            "4. close": "195.2700",
            "5. volume": "10863"
        },
        "2024-08-20 12:10:00": {
            "1. open": "195.3400",
            "2. high": "195.3800",
            "3. low": "195.2300",
            "4. close": "195.3000",
            "5. volume": "17031"
        },
        "2024-08-20 12:05:00": {
            "1. open": "195.4370",
            "2. high": "195.4370",
            "3. low": "195.2500",
            "4. close": "195.3410",
            "5. volume": "6835"
        },
        "2024-08-20 12:00:00": {
            "1. open": "195.4880",
            "2. high": "195.6600",
            "3. low": "195.3700",
            "4. close": "195.3990",
            "5. volume": "21588"
        },
        "2024-08-20 11:55:00": {
            "1. open": "195.1900",
            "2. high": "195.4700",
            "3. low": "195.1900",
            "4. close": "195.4440",
            "5. volume": "16191"
        },
        "2024-08-20 11:50:00": {
            "1. open": "195.0480",
            "2. high": "195.1800",
            "3. low": "194.9700",
            "4. close": "195.1800",
            "5. volume": "15736"
        },
        "2024-08-20 11:45:00": {
            "1. open": "194.9300",
            "2. high": "195.0600",
            "3. low": "194.8900",
            "4. close": "195.0050",
            "5. volume": "9557"
        },
        "2024-08-20 11:40:00": {
            "1. open": "194.9450",
            "2. high": "195.0150",
            "3. low": "194.9100",
            "4. close": "194.9500",
            "5. volume": "7813"
        },
        "2024-08-20 11:35:00": {
            "1. open": "194.8060",
            "2. high": "194.9300",
            "3. low": "194.7250",
            "4. close": "194.9300",
            "5. volume": "7621"
        },
        "2024-08-20 11:30:00": {
            "1. open": "194.8000",
            "2. high": "194.8300",
            "3. low": "194.7200",
            "4. close": "194.8000",
            "5. volume": "7981"
        },
        "2024-08-20 11:25:00": {
            "1. open": "194.8250",
            "2. high": "194.9000",
            "3. low": "194.7700",
            "4. close": "194.8000",
            "5. volume": "11947"
        },
        "2024-08-20 11:20:00": {
            "1. open": "194.7900",
            "2. high": "194.9170",
            "3. low": "194.7900",
            "4. close": "194.8650",
            "5. volume": "5188"
        },
        "2024-08-20 11:15:00": {
            "1. open": "194.8000",
            "2. high": "194.9100",
            "3. low": "194.6800",
            "4. close": "194.8100",
            "5. volume": "13280"
        },
        "2024-08-20 11:10:00": {
            "1. open": "194.6900",
            "2. high": "194.9350",
            "3. low": "194.5650",
            "4. close": "194.8250",
            "5. volume": "20746"
        },
        "2024-08-20 11:05:00": {
            "1. open": "194.6400",
            "2. high": "194.7150",
            "3. low": "194.5300",
            "4. close": "194.5900",
            "5. volume": "6254"
        },
        "2024-08-20 11:00:00": {
            "1. open": "194.8400",
            "2. high": "194.8400",
            "3. low": "194.5900",
            "4. close": "194.6300",
            "5. volume": "9074"
        },
        "2024-08-20 10:55:00": {
            "1. open": "194.9600",
            "2. high": "195.0000",
            "3. low": "194.8900",
            "4. close": "194.8950",
            "5. volume": "12864"
        },
        "2024-08-20 10:50:00": {
            "1. open": "194.9350",
            "2. high": "194.9900",
            "3. low": "194.8800",
            "4. close": "194.9250",
            "5. volume": "17711"
        },
        "2024-08-20 10:45:00": {
            "1. open": "194.9600",
            "2. high": "195.1500",
            "3. low": "194.8200",
            "4. close": "194.9700",
            "5. volume": "24543"
        },
        "2024-08-20 10:40:00": {
            "1. open": "195.0500",
            "2. high": "195.0650",
            "3. low": "194.9700",
            "4. close": "194.9700",
            "5. volume": "14711"
        }
    }
}
Writing ibm.json
with open("ibm.json") as f:
    ibmdata = json.loads(f.read())
ibmdata
{'Meta Data': {'1. Information': 'Intraday (5min) open, high, low, close prices and volume',
  '2. Symbol': 'IBM',
  '3. Last Refreshed': '2024-08-20 19:55:00',
  '4. Interval': '5min',
  '5. Output Size': 'Compact',
  '6. Time Zone': 'US/Eastern'},
 'Time Series (5min)': {'2024-08-20 19:55:00': {'1. open': '195.9800',
   '2. high': '195.9900',
   '3. low': '195.9800',
   '4. close': '195.9900',
   '5. volume': '35'},
  '2024-08-20 19:50:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '299'},
  '2024-08-20 19:35:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '25'},
  '2024-08-20 19:30:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '1'},
  '2024-08-20 19:20:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '106'},
  '2024-08-20 19:15:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '4'},
  '2024-08-20 19:10:00': {'1. open': '195.9900',
   '2. high': '195.9900',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '7'},
  '2024-08-20 19:05:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '2'},
  '2024-08-20 19:00:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '343873'},
  '2024-08-20 18:50:00': {'1. open': '195.9900',
   '2. high': '195.9900',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '1'},
  '2024-08-20 18:45:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '5'},
  '2024-08-20 18:40:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '100'},
  '2024-08-20 18:30:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '196.0300',
   '4. close': '196.0300',
   '5. volume': '343867'},
  '2024-08-20 18:25:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '6'},
  '2024-08-20 18:20:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '1'},
  '2024-08-20 18:15:00': {'1. open': '195.9900',
   '2. high': '195.9900',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '1'},
  '2024-08-20 18:10:00': {'1. open': '195.9900',
   '2. high': '195.9900',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '7'},
  '2024-08-20 18:05:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '25'},
  '2024-08-20 18:00:00': {'1. open': '196.0050',
   '2. high': '196.0050',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '50'},
  '2024-08-20 17:50:00': {'1. open': '196.0290',
   '2. high': '196.0300',
   '3. low': '196.0290',
   '4. close': '196.0300',
   '5. volume': '21'},
  '2024-08-20 17:45:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '196.0200',
   '4. close': '196.0200',
   '5. volume': '2'},
  '2024-08-20 17:35:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '180'},
  '2024-08-20 17:25:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '1'},
  '2024-08-20 17:20:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '6'},
  '2024-08-20 17:10:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '10206'},
  '2024-08-20 17:05:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '4'},
  '2024-08-20 16:55:00': {'1. open': '196.2320',
   '2. high': '196.2320',
   '3. low': '196.2320',
   '4. close': '196.2320',
   '5. volume': '35'},
  '2024-08-20 16:50:00': {'1. open': '195.9500',
   '2. high': '195.9500',
   '3. low': '195.9500',
   '4. close': '195.9500',
   '5. volume': '1'},
  '2024-08-20 16:35:00': {'1. open': '195.7800',
   '2. high': '195.7800',
   '3. low': '195.7800',
   '4. close': '195.7800',
   '5. volume': '15'},
  '2024-08-20 16:30:00': {'1. open': '196.2500',
   '2. high': '196.2500',
   '3. low': '195.7800',
   '4. close': '195.7800',
   '5. volume': '3'},
  '2024-08-20 16:25:00': {'1. open': '196.0300',
   '2. high': '196.2370',
   '3. low': '195.9500',
   '4. close': '196.2370',
   '5. volume': '684'},
  '2024-08-20 16:20:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '196.0300',
   '4. close': '196.0300',
   '5. volume': '1032'},
  '2024-08-20 16:15:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '195.9700',
   '4. close': '195.9700',
   '5. volume': '3'},
  '2024-08-20 16:10:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '194.9700',
   '4. close': '195.9700',
   '5. volume': '344465'},
  '2024-08-20 16:05:00': {'1. open': '196.0300',
   '2. high': '196.2400',
   '3. low': '195.6500',
   '4. close': '196.0300',
   '5. volume': '3728'},
  '2024-08-20 16:00:00': {'1. open': '196.0500',
   '2. high': '196.1800',
   '3. low': '194.0200',
   '4. close': '196.1700',
   '5. volume': '768002'},
  '2024-08-20 15:55:00': {'1. open': '195.4900',
   '2. high': '196.2100',
   '3. low': '195.4700',
   '4. close': '196.0500',
   '5. volume': '261688'},
  '2024-08-20 15:50:00': {'1. open': '195.5200',
   '2. high': '195.6400',
   '3. low': '195.2900',
   '4. close': '195.5290',
   '5. volume': '52582'},
  '2024-08-20 15:45:00': {'1. open': '195.7300',
   '2. high': '195.7500',
   '3. low': '195.4510',
   '4. close': '195.4950',
   '5. volume': '52354'},
  '2024-08-20 15:40:00': {'1. open': '195.7900',
   '2. high': '195.8400',
   '3. low': '195.7100',
   '4. close': '195.7490',
   '5. volume': '23192'},
  '2024-08-20 15:35:00': {'1. open': '195.8800',
   '2. high': '195.8800',
   '3. low': '195.7600',
   '4. close': '195.8100',
   '5. volume': '25890'},
  '2024-08-20 15:30:00': {'1. open': '195.8300',
   '2. high': '195.8790',
   '3. low': '195.7300',
   '4. close': '195.8600',
   '5. volume': '21745'},
  '2024-08-20 15:25:00': {'1. open': '195.7900',
   '2. high': '195.8500',
   '3. low': '195.7490',
   '4. close': '195.8200',
   '5. volume': '13682'},
  '2024-08-20 15:20:00': {'1. open': '195.8770',
   '2. high': '195.9000',
   '3. low': '195.7100',
   '4. close': '195.7900',
   '5. volume': '12833'},
  '2024-08-20 15:15:00': {'1. open': '195.8700',
   '2. high': '195.8900',
   '3. low': '195.7400',
   '4. close': '195.8650',
   '5. volume': '17838'},
  '2024-08-20 15:10:00': {'1. open': '195.7900',
   '2. high': '195.9200',
   '3. low': '195.7800',
   '4. close': '195.8680',
   '5. volume': '17747'},
  '2024-08-20 15:05:00': {'1. open': '195.7100',
   '2. high': '195.8000',
   '3. low': '195.7100',
   '4. close': '195.8000',
   '5. volume': '14138'},
  '2024-08-20 15:00:00': {'1. open': '195.7000',
   '2. high': '195.7700',
   '3. low': '195.6900',
   '4. close': '195.7150',
   '5. volume': '9247'},
  '2024-08-20 14:55:00': {'1. open': '195.7800',
   '2. high': '195.8100',
   '3. low': '195.7300',
   '4. close': '195.7300',
   '5. volume': '11581'},
  '2024-08-20 14:50:00': {'1. open': '195.6850',
   '2. high': '195.8000',
   '3. low': '195.6750',
   '4. close': '195.7600',
   '5. volume': '16633'},
  '2024-08-20 14:45:00': {'1. open': '195.5900',
   '2. high': '195.7100',
   '3. low': '195.5900',
   '4. close': '195.6750',
   '5. volume': '11283'},
  '2024-08-20 14:40:00': {'1. open': '195.7000',
   '2. high': '195.7000',
   '3. low': '195.5800',
   '4. close': '195.5800',
   '5. volume': '14355'},
  '2024-08-20 14:35:00': {'1. open': '195.6700',
   '2. high': '195.7400',
   '3. low': '195.6700',
   '4. close': '195.7000',
   '5. volume': '10847'},
  '2024-08-20 14:30:00': {'1. open': '195.6700',
   '2. high': '195.7100',
   '3. low': '195.6000',
   '4. close': '195.6700',
   '5. volume': '12551'},
  '2024-08-20 14:25:00': {'1. open': '195.5750',
   '2. high': '195.7240',
   '3. low': '195.5100',
   '4. close': '195.6700',
   '5. volume': '12659'},
  '2024-08-20 14:20:00': {'1. open': '195.5200',
   '2. high': '195.6200',
   '3. low': '195.5000',
   '4. close': '195.6000',
   '5. volume': '8475'},
  '2024-08-20 14:15:00': {'1. open': '195.5800',
   '2. high': '195.6100',
   '3. low': '195.5100',
   '4. close': '195.5200',
   '5. volume': '6932'},
  '2024-08-20 14:10:00': {'1. open': '195.4000',
   '2. high': '195.5900',
   '3. low': '195.4000',
   '4. close': '195.5200',
   '5. volume': '8562'},
  '2024-08-20 14:05:00': {'1. open': '195.2950',
   '2. high': '195.4300',
   '3. low': '195.2300',
   '4. close': '195.4200',
   '5. volume': '7865'},
  '2024-08-20 14:00:00': {'1. open': '195.1900',
   '2. high': '195.3500',
   '3. low': '195.1300',
   '4. close': '195.2800',
   '5. volume': '14069'},
  '2024-08-20 13:55:00': {'1. open': '195.1200',
   '2. high': '195.1700',
   '3. low': '195.1100',
   '4. close': '195.1700',
   '5. volume': '3865'},
  '2024-08-20 13:50:00': {'1. open': '195.1000',
   '2. high': '195.1500',
   '3. low': '195.0500',
   '4. close': '195.1200',
   '5. volume': '14232'},
  '2024-08-20 13:45:00': {'1. open': '195.3100',
   '2. high': '195.3300',
   '3. low': '195.1500',
   '4. close': '195.1750',
   '5. volume': '11634'},
  '2024-08-20 13:40:00': {'1. open': '195.3450',
   '2. high': '195.3900',
   '3. low': '195.3100',
   '4. close': '195.3400',
   '5. volume': '11062'},
  '2024-08-20 13:35:00': {'1. open': '195.4800',
   '2. high': '195.4800',
   '3. low': '195.2900',
   '4. close': '195.3350',
   '5. volume': '10018'},
  '2024-08-20 13:30:00': {'1. open': '195.5900',
   '2. high': '195.6100',
   '3. low': '195.4900',
   '4. close': '195.5050',
   '5. volume': '8854'},
  '2024-08-20 13:25:00': {'1. open': '195.5750',
   '2. high': '195.6400',
   '3. low': '195.4800',
   '4. close': '195.5600',
   '5. volume': '12037'},
  '2024-08-20 13:20:00': {'1. open': '195.6000',
   '2. high': '195.6500',
   '3. low': '195.5500',
   '4. close': '195.6000',
   '5. volume': '16260'},
  '2024-08-20 13:15:00': {'1. open': '195.5000',
   '2. high': '195.5800',
   '3. low': '195.4680',
   '4. close': '195.5700',
   '5. volume': '16144'},
  '2024-08-20 13:10:00': {'1. open': '195.3750',
   '2. high': '195.5500',
   '3. low': '195.3650',
   '4. close': '195.5000',
   '5. volume': '18888'},
  '2024-08-20 13:05:00': {'1. open': '195.2350',
   '2. high': '195.3800',
   '3. low': '195.2050',
   '4. close': '195.3800',
   '5. volume': '5488'},
  '2024-08-20 13:00:00': {'1. open': '195.3700',
   '2. high': '195.3700',
   '3. low': '195.1600',
   '4. close': '195.2300',
   '5. volume': '8255'},
  '2024-08-20 12:55:00': {'1. open': '195.4790',
   '2. high': '195.4930',
   '3. low': '195.3600',
   '4. close': '195.3800',
   '5. volume': '9441'},
  '2024-08-20 12:50:00': {'1. open': '195.4550',
   '2. high': '195.4800',
   '3. low': '195.4140',
   '4. close': '195.4140',
   '5. volume': '7033'},
  '2024-08-20 12:45:00': {'1. open': '195.4250',
   '2. high': '195.4600',
   '3. low': '195.3850',
   '4. close': '195.4550',
   '5. volume': '6749'},
  '2024-08-20 12:40:00': {'1. open': '195.5480',
   '2. high': '195.5600',
   '3. low': '195.3610',
   '4. close': '195.4400',
   '5. volume': '9811'},
  '2024-08-20 12:35:00': {'1. open': '195.4200',
   '2. high': '195.5200',
   '3. low': '195.3400',
   '4. close': '195.5100',
   '5. volume': '8085'},
  '2024-08-20 12:30:00': {'1. open': '195.4050',
   '2. high': '195.4380',
   '3. low': '195.3300',
   '4. close': '195.3900',
   '5. volume': '9071'},
  '2024-08-20 12:25:00': {'1. open': '195.3400',
   '2. high': '195.4100',
   '3. low': '195.3150',
   '4. close': '195.3900',
   '5. volume': '5532'},
  '2024-08-20 12:20:00': {'1. open': '195.2750',
   '2. high': '195.3400',
   '3. low': '195.1500',
   '4. close': '195.3400',
   '5. volume': '12053'},
  '2024-08-20 12:15:00': {'1. open': '195.3500',
   '2. high': '195.3500',
   '3. low': '195.2300',
   '4. close': '195.2700',
   '5. volume': '10863'},
  '2024-08-20 12:10:00': {'1. open': '195.3400',
   '2. high': '195.3800',
   '3. low': '195.2300',
   '4. close': '195.3000',
   '5. volume': '17031'},
  '2024-08-20 12:05:00': {'1. open': '195.4370',
   '2. high': '195.4370',
   '3. low': '195.2500',
   '4. close': '195.3410',
   '5. volume': '6835'},
  '2024-08-20 12:00:00': {'1. open': '195.4880',
   '2. high': '195.6600',
   '3. low': '195.3700',
   '4. close': '195.3990',
   '5. volume': '21588'},
  '2024-08-20 11:55:00': {'1. open': '195.1900',
   '2. high': '195.4700',
   '3. low': '195.1900',
   '4. close': '195.4440',
   '5. volume': '16191'},
  '2024-08-20 11:50:00': {'1. open': '195.0480',
   '2. high': '195.1800',
   '3. low': '194.9700',
   '4. close': '195.1800',
   '5. volume': '15736'},
  '2024-08-20 11:45:00': {'1. open': '194.9300',
   '2. high': '195.0600',
   '3. low': '194.8900',
   '4. close': '195.0050',
   '5. volume': '9557'},
  '2024-08-20 11:40:00': {'1. open': '194.9450',
   '2. high': '195.0150',
   '3. low': '194.9100',
   '4. close': '194.9500',
   '5. volume': '7813'},
  '2024-08-20 11:35:00': {'1. open': '194.8060',
   '2. high': '194.9300',
   '3. low': '194.7250',
   '4. close': '194.9300',
   '5. volume': '7621'},
  '2024-08-20 11:30:00': {'1. open': '194.8000',
   '2. high': '194.8300',
   '3. low': '194.7200',
   '4. close': '194.8000',
   '5. volume': '7981'},
  '2024-08-20 11:25:00': {'1. open': '194.8250',
   '2. high': '194.9000',
   '3. low': '194.7700',
   '4. close': '194.8000',
   '5. volume': '11947'},
  '2024-08-20 11:20:00': {'1. open': '194.7900',
   '2. high': '194.9170',
   '3. low': '194.7900',
   '4. close': '194.8650',
   '5. volume': '5188'},
  '2024-08-20 11:15:00': {'1. open': '194.8000',
   '2. high': '194.9100',
   '3. low': '194.6800',
   '4. close': '194.8100',
   '5. volume': '13280'},
  '2024-08-20 11:10:00': {'1. open': '194.6900',
   '2. high': '194.9350',
   '3. low': '194.5650',
   '4. close': '194.8250',
   '5. volume': '20746'},
  '2024-08-20 11:05:00': {'1. open': '194.6400',
   '2. high': '194.7150',
   '3. low': '194.5300',
   '4. close': '194.5900',
   '5. volume': '6254'},
  '2024-08-20 11:00:00': {'1. open': '194.8400',
   '2. high': '194.8400',
   '3. low': '194.5900',
   '4. close': '194.6300',
   '5. volume': '9074'},
  '2024-08-20 10:55:00': {'1. open': '194.9600',
   '2. high': '195.0000',
   '3. low': '194.8900',
   '4. close': '194.8950',
   '5. volume': '12864'},
  '2024-08-20 10:50:00': {'1. open': '194.9350',
   '2. high': '194.9900',
   '3. low': '194.8800',
   '4. close': '194.9250',
   '5. volume': '17711'},
  '2024-08-20 10:45:00': {'1. open': '194.9600',
   '2. high': '195.1500',
   '3. low': '194.8200',
   '4. close': '194.9700',
   '5. volume': '24543'},
  '2024-08-20 10:40:00': {'1. open': '195.0500',
   '2. high': '195.0650',
   '3. low': '194.9700',
   '4. close': '194.9700',
   '5. volume': '14711'}}}
import pandas as pd
with open("ibm.json") as f:
    df = pd.read_json(f.read())
/tmp/ipykernel_1343637/148234076.py:2: FutureWarning: Passing literal json to 'read_json' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.
  df = pd.read_json(f.read())
df.transpose
<bound method DataFrame.transpose of                                                              Meta Data  \
1. Information       Intraday (5min) open, high, low, close prices ...   
2. Symbol                                                          IBM   
3. Last Refreshed                                  2024-08-20 19:55:00   
4. Interval                                                       5min   
5. Output Size                                                 Compact   
...                                                                ...   
2024-08-20 11:00:00                                                NaN   
2024-08-20 10:55:00                                                NaN   
2024-08-20 10:50:00                                                NaN   
2024-08-20 10:45:00                                                NaN   
2024-08-20 10:40:00                                                NaN   

                                                    Time Series (5min)  
1. Information                                                     NaN  
2. Symbol                                                          NaN  
3. Last Refreshed                                                  NaN  
4. Interval                                                        NaN  
5. Output Size                                                     NaN  
...                                                                ...  
2024-08-20 11:00:00  {'1. open': '194.8400', '2. high': '194.8400',...  
2024-08-20 10:55:00  {'1. open': '194.9600', '2. high': '195.0000',...  
2024-08-20 10:50:00  {'1. open': '194.9350', '2. high': '194.9900',...  
2024-08-20 10:45:00  {'1. open': '194.9600', '2. high': '195.1500',...  
2024-08-20 10:40:00  {'1. open': '195.0500', '2. high': '195.0650',...  

[106 rows x 2 columns]>
ibmdata
{'Meta Data': {'1. Information': 'Intraday (5min) open, high, low, close prices and volume',
  '2. Symbol': 'IBM',
  '3. Last Refreshed': '2024-08-20 19:55:00',
  '4. Interval': '5min',
  '5. Output Size': 'Compact',
  '6. Time Zone': 'US/Eastern'},
 'Time Series (5min)': {'2024-08-20 19:55:00': {'1. open': '195.9800',
   '2. high': '195.9900',
   '3. low': '195.9800',
   '4. close': '195.9900',
   '5. volume': '35'},
  '2024-08-20 19:50:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '299'},
  '2024-08-20 19:35:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '25'},
  '2024-08-20 19:30:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '1'},
  '2024-08-20 19:20:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '106'},
  '2024-08-20 19:15:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '4'},
  '2024-08-20 19:10:00': {'1. open': '195.9900',
   '2. high': '195.9900',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '7'},
  '2024-08-20 19:05:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '2'},
  '2024-08-20 19:00:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '343873'},
  '2024-08-20 18:50:00': {'1. open': '195.9900',
   '2. high': '195.9900',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '1'},
  '2024-08-20 18:45:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '5'},
  '2024-08-20 18:40:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '100'},
  '2024-08-20 18:30:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '196.0300',
   '4. close': '196.0300',
   '5. volume': '343867'},
  '2024-08-20 18:25:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '6'},
  '2024-08-20 18:20:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '1'},
  '2024-08-20 18:15:00': {'1. open': '195.9900',
   '2. high': '195.9900',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '1'},
  '2024-08-20 18:10:00': {'1. open': '195.9900',
   '2. high': '195.9900',
   '3. low': '195.9900',
   '4. close': '195.9900',
   '5. volume': '7'},
  '2024-08-20 18:05:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '25'},
  '2024-08-20 18:00:00': {'1. open': '196.0050',
   '2. high': '196.0050',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '50'},
  '2024-08-20 17:50:00': {'1. open': '196.0290',
   '2. high': '196.0300',
   '3. low': '196.0290',
   '4. close': '196.0300',
   '5. volume': '21'},
  '2024-08-20 17:45:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '196.0200',
   '4. close': '196.0200',
   '5. volume': '2'},
  '2024-08-20 17:35:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '180'},
  '2024-08-20 17:25:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '1'},
  '2024-08-20 17:20:00': {'1. open': '196.0000',
   '2. high': '196.0000',
   '3. low': '196.0000',
   '4. close': '196.0000',
   '5. volume': '6'},
  '2024-08-20 17:10:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '10206'},
  '2024-08-20 17:05:00': {'1. open': '195.9800',
   '2. high': '195.9800',
   '3. low': '195.9800',
   '4. close': '195.9800',
   '5. volume': '4'},
  '2024-08-20 16:55:00': {'1. open': '196.2320',
   '2. high': '196.2320',
   '3. low': '196.2320',
   '4. close': '196.2320',
   '5. volume': '35'},
  '2024-08-20 16:50:00': {'1. open': '195.9500',
   '2. high': '195.9500',
   '3. low': '195.9500',
   '4. close': '195.9500',
   '5. volume': '1'},
  '2024-08-20 16:35:00': {'1. open': '195.7800',
   '2. high': '195.7800',
   '3. low': '195.7800',
   '4. close': '195.7800',
   '5. volume': '15'},
  '2024-08-20 16:30:00': {'1. open': '196.2500',
   '2. high': '196.2500',
   '3. low': '195.7800',
   '4. close': '195.7800',
   '5. volume': '3'},
  '2024-08-20 16:25:00': {'1. open': '196.0300',
   '2. high': '196.2370',
   '3. low': '195.9500',
   '4. close': '196.2370',
   '5. volume': '684'},
  '2024-08-20 16:20:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '196.0300',
   '4. close': '196.0300',
   '5. volume': '1032'},
  '2024-08-20 16:15:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '195.9700',
   '4. close': '195.9700',
   '5. volume': '3'},
  '2024-08-20 16:10:00': {'1. open': '196.0300',
   '2. high': '196.0300',
   '3. low': '194.9700',
   '4. close': '195.9700',
   '5. volume': '344465'},
  '2024-08-20 16:05:00': {'1. open': '196.0300',
   '2. high': '196.2400',
   '3. low': '195.6500',
   '4. close': '196.0300',
   '5. volume': '3728'},
  '2024-08-20 16:00:00': {'1. open': '196.0500',
   '2. high': '196.1800',
   '3. low': '194.0200',
   '4. close': '196.1700',
   '5. volume': '768002'},
  '2024-08-20 15:55:00': {'1. open': '195.4900',
   '2. high': '196.2100',
   '3. low': '195.4700',
   '4. close': '196.0500',
   '5. volume': '261688'},
  '2024-08-20 15:50:00': {'1. open': '195.5200',
   '2. high': '195.6400',
   '3. low': '195.2900',
   '4. close': '195.5290',
   '5. volume': '52582'},
  '2024-08-20 15:45:00': {'1. open': '195.7300',
   '2. high': '195.7500',
   '3. low': '195.4510',
   '4. close': '195.4950',
   '5. volume': '52354'},
  '2024-08-20 15:40:00': {'1. open': '195.7900',
   '2. high': '195.8400',
   '3. low': '195.7100',
   '4. close': '195.7490',
   '5. volume': '23192'},
  '2024-08-20 15:35:00': {'1. open': '195.8800',
   '2. high': '195.8800',
   '3. low': '195.7600',
   '4. close': '195.8100',
   '5. volume': '25890'},
  '2024-08-20 15:30:00': {'1. open': '195.8300',
   '2. high': '195.8790',
   '3. low': '195.7300',
   '4. close': '195.8600',
   '5. volume': '21745'},
  '2024-08-20 15:25:00': {'1. open': '195.7900',
   '2. high': '195.8500',
   '3. low': '195.7490',
   '4. close': '195.8200',
   '5. volume': '13682'},
  '2024-08-20 15:20:00': {'1. open': '195.8770',
   '2. high': '195.9000',
   '3. low': '195.7100',
   '4. close': '195.7900',
   '5. volume': '12833'},
  '2024-08-20 15:15:00': {'1. open': '195.8700',
   '2. high': '195.8900',
   '3. low': '195.7400',
   '4. close': '195.8650',
   '5. volume': '17838'},
  '2024-08-20 15:10:00': {'1. open': '195.7900',
   '2. high': '195.9200',
   '3. low': '195.7800',
   '4. close': '195.8680',
   '5. volume': '17747'},
  '2024-08-20 15:05:00': {'1. open': '195.7100',
   '2. high': '195.8000',
   '3. low': '195.7100',
   '4. close': '195.8000',
   '5. volume': '14138'},
  '2024-08-20 15:00:00': {'1. open': '195.7000',
   '2. high': '195.7700',
   '3. low': '195.6900',
   '4. close': '195.7150',
   '5. volume': '9247'},
  '2024-08-20 14:55:00': {'1. open': '195.7800',
   '2. high': '195.8100',
   '3. low': '195.7300',
   '4. close': '195.7300',
   '5. volume': '11581'},
  '2024-08-20 14:50:00': {'1. open': '195.6850',
   '2. high': '195.8000',
   '3. low': '195.6750',
   '4. close': '195.7600',
   '5. volume': '16633'},
  '2024-08-20 14:45:00': {'1. open': '195.5900',
   '2. high': '195.7100',
   '3. low': '195.5900',
   '4. close': '195.6750',
   '5. volume': '11283'},
  '2024-08-20 14:40:00': {'1. open': '195.7000',
   '2. high': '195.7000',
   '3. low': '195.5800',
   '4. close': '195.5800',
   '5. volume': '14355'},
  '2024-08-20 14:35:00': {'1. open': '195.6700',
   '2. high': '195.7400',
   '3. low': '195.6700',
   '4. close': '195.7000',
   '5. volume': '10847'},
  '2024-08-20 14:30:00': {'1. open': '195.6700',
   '2. high': '195.7100',
   '3. low': '195.6000',
   '4. close': '195.6700',
   '5. volume': '12551'},
  '2024-08-20 14:25:00': {'1. open': '195.5750',
   '2. high': '195.7240',
   '3. low': '195.5100',
   '4. close': '195.6700',
   '5. volume': '12659'},
  '2024-08-20 14:20:00': {'1. open': '195.5200',
   '2. high': '195.6200',
   '3. low': '195.5000',
   '4. close': '195.6000',
   '5. volume': '8475'},
  '2024-08-20 14:15:00': {'1. open': '195.5800',
   '2. high': '195.6100',
   '3. low': '195.5100',
   '4. close': '195.5200',
   '5. volume': '6932'},
  '2024-08-20 14:10:00': {'1. open': '195.4000',
   '2. high': '195.5900',
   '3. low': '195.4000',
   '4. close': '195.5200',
   '5. volume': '8562'},
  '2024-08-20 14:05:00': {'1. open': '195.2950',
   '2. high': '195.4300',
   '3. low': '195.2300',
   '4. close': '195.4200',
   '5. volume': '7865'},
  '2024-08-20 14:00:00': {'1. open': '195.1900',
   '2. high': '195.3500',
   '3. low': '195.1300',
   '4. close': '195.2800',
   '5. volume': '14069'},
  '2024-08-20 13:55:00': {'1. open': '195.1200',
   '2. high': '195.1700',
   '3. low': '195.1100',
   '4. close': '195.1700',
   '5. volume': '3865'},
  '2024-08-20 13:50:00': {'1. open': '195.1000',
   '2. high': '195.1500',
   '3. low': '195.0500',
   '4. close': '195.1200',
   '5. volume': '14232'},
  '2024-08-20 13:45:00': {'1. open': '195.3100',
   '2. high': '195.3300',
   '3. low': '195.1500',
   '4. close': '195.1750',
   '5. volume': '11634'},
  '2024-08-20 13:40:00': {'1. open': '195.3450',
   '2. high': '195.3900',
   '3. low': '195.3100',
   '4. close': '195.3400',
   '5. volume': '11062'},
  '2024-08-20 13:35:00': {'1. open': '195.4800',
   '2. high': '195.4800',
   '3. low': '195.2900',
   '4. close': '195.3350',
   '5. volume': '10018'},
  '2024-08-20 13:30:00': {'1. open': '195.5900',
   '2. high': '195.6100',
   '3. low': '195.4900',
   '4. close': '195.5050',
   '5. volume': '8854'},
  '2024-08-20 13:25:00': {'1. open': '195.5750',
   '2. high': '195.6400',
   '3. low': '195.4800',
   '4. close': '195.5600',
   '5. volume': '12037'},
  '2024-08-20 13:20:00': {'1. open': '195.6000',
   '2. high': '195.6500',
   '3. low': '195.5500',
   '4. close': '195.6000',
   '5. volume': '16260'},
  '2024-08-20 13:15:00': {'1. open': '195.5000',
   '2. high': '195.5800',
   '3. low': '195.4680',
   '4. close': '195.5700',
   '5. volume': '16144'},
  '2024-08-20 13:10:00': {'1. open': '195.3750',
   '2. high': '195.5500',
   '3. low': '195.3650',
   '4. close': '195.5000',
   '5. volume': '18888'},
  '2024-08-20 13:05:00': {'1. open': '195.2350',
   '2. high': '195.3800',
   '3. low': '195.2050',
   '4. close': '195.3800',
   '5. volume': '5488'},
  '2024-08-20 13:00:00': {'1. open': '195.3700',
   '2. high': '195.3700',
   '3. low': '195.1600',
   '4. close': '195.2300',
   '5. volume': '8255'},
  '2024-08-20 12:55:00': {'1. open': '195.4790',
   '2. high': '195.4930',
   '3. low': '195.3600',
   '4. close': '195.3800',
   '5. volume': '9441'},
  '2024-08-20 12:50:00': {'1. open': '195.4550',
   '2. high': '195.4800',
   '3. low': '195.4140',
   '4. close': '195.4140',
   '5. volume': '7033'},
  '2024-08-20 12:45:00': {'1. open': '195.4250',
   '2. high': '195.4600',
   '3. low': '195.3850',
   '4. close': '195.4550',
   '5. volume': '6749'},
  '2024-08-20 12:40:00': {'1. open': '195.5480',
   '2. high': '195.5600',
   '3. low': '195.3610',
   '4. close': '195.4400',
   '5. volume': '9811'},
  '2024-08-20 12:35:00': {'1. open': '195.4200',
   '2. high': '195.5200',
   '3. low': '195.3400',
   '4. close': '195.5100',
   '5. volume': '8085'},
  '2024-08-20 12:30:00': {'1. open': '195.4050',
   '2. high': '195.4380',
   '3. low': '195.3300',
   '4. close': '195.3900',
   '5. volume': '9071'},
  '2024-08-20 12:25:00': {'1. open': '195.3400',
   '2. high': '195.4100',
   '3. low': '195.3150',
   '4. close': '195.3900',
   '5. volume': '5532'},
  '2024-08-20 12:20:00': {'1. open': '195.2750',
   '2. high': '195.3400',
   '3. low': '195.1500',
   '4. close': '195.3400',
   '5. volume': '12053'},
  '2024-08-20 12:15:00': {'1. open': '195.3500',
   '2. high': '195.3500',
   '3. low': '195.2300',
   '4. close': '195.2700',
   '5. volume': '10863'},
  '2024-08-20 12:10:00': {'1. open': '195.3400',
   '2. high': '195.3800',
   '3. low': '195.2300',
   '4. close': '195.3000',
   '5. volume': '17031'},
  '2024-08-20 12:05:00': {'1. open': '195.4370',
   '2. high': '195.4370',
   '3. low': '195.2500',
   '4. close': '195.3410',
   '5. volume': '6835'},
  '2024-08-20 12:00:00': {'1. open': '195.4880',
   '2. high': '195.6600',
   '3. low': '195.3700',
   '4. close': '195.3990',
   '5. volume': '21588'},
  '2024-08-20 11:55:00': {'1. open': '195.1900',
   '2. high': '195.4700',
   '3. low': '195.1900',
   '4. close': '195.4440',
   '5. volume': '16191'},
  '2024-08-20 11:50:00': {'1. open': '195.0480',
   '2. high': '195.1800',
   '3. low': '194.9700',
   '4. close': '195.1800',
   '5. volume': '15736'},
  '2024-08-20 11:45:00': {'1. open': '194.9300',
   '2. high': '195.0600',
   '3. low': '194.8900',
   '4. close': '195.0050',
   '5. volume': '9557'},
  '2024-08-20 11:40:00': {'1. open': '194.9450',
   '2. high': '195.0150',
   '3. low': '194.9100',
   '4. close': '194.9500',
   '5. volume': '7813'},
  '2024-08-20 11:35:00': {'1. open': '194.8060',
   '2. high': '194.9300',
   '3. low': '194.7250',
   '4. close': '194.9300',
   '5. volume': '7621'},
  '2024-08-20 11:30:00': {'1. open': '194.8000',
   '2. high': '194.8300',
   '3. low': '194.7200',
   '4. close': '194.8000',
   '5. volume': '7981'},
  '2024-08-20 11:25:00': {'1. open': '194.8250',
   '2. high': '194.9000',
   '3. low': '194.7700',
   '4. close': '194.8000',
   '5. volume': '11947'},
  '2024-08-20 11:20:00': {'1. open': '194.7900',
   '2. high': '194.9170',
   '3. low': '194.7900',
   '4. close': '194.8650',
   '5. volume': '5188'},
  '2024-08-20 11:15:00': {'1. open': '194.8000',
   '2. high': '194.9100',
   '3. low': '194.6800',
   '4. close': '194.8100',
   '5. volume': '13280'},
  '2024-08-20 11:10:00': {'1. open': '194.6900',
   '2. high': '194.9350',
   '3. low': '194.5650',
   '4. close': '194.8250',
   '5. volume': '20746'},
  '2024-08-20 11:05:00': {'1. open': '194.6400',
   '2. high': '194.7150',
   '3. low': '194.5300',
   '4. close': '194.5900',
   '5. volume': '6254'},
  '2024-08-20 11:00:00': {'1. open': '194.8400',
   '2. high': '194.8400',
   '3. low': '194.5900',
   '4. close': '194.6300',
   '5. volume': '9074'},
  '2024-08-20 10:55:00': {'1. open': '194.9600',
   '2. high': '195.0000',
   '3. low': '194.8900',
   '4. close': '194.8950',
   '5. volume': '12864'},
  '2024-08-20 10:50:00': {'1. open': '194.9350',
   '2. high': '194.9900',
   '3. low': '194.8800',
   '4. close': '194.9250',
   '5. volume': '17711'},
  '2024-08-20 10:45:00': {'1. open': '194.9600',
   '2. high': '195.1500',
   '3. low': '194.8200',
   '4. close': '194.9700',
   '5. volume': '24543'},
  '2024-08-20 10:40:00': {'1. open': '195.0500',
   '2. high': '195.0650',
   '3. low': '194.9700',
   '4. close': '194.9700',
   '5. volume': '14711'}}}
df
Meta Data Time Series (5min)
1. Information Intraday (5min) open, high, low, close prices ... NaN
2. Symbol IBM NaN
3. Last Refreshed 2024-08-20 19:55:00 NaN
4. Interval 5min NaN
5. Output Size Compact NaN
... ... ...
2024-08-20 11:00:00 NaN {'1. open': '194.8400', '2. high': '194.8400',...
2024-08-20 10:55:00 NaN {'1. open': '194.9600', '2. high': '195.0000',...
2024-08-20 10:50:00 NaN {'1. open': '194.9350', '2. high': '194.9900',...
2024-08-20 10:45:00 NaN {'1. open': '194.9600', '2. high': '195.1500',...
2024-08-20 10:40:00 NaN {'1. open': '195.0500', '2. high': '195.0650',...

106 rows × 2 columns

pd.read_json(json.dumps(ibmdata['Time Series (5min)'])).transpose()
/tmp/ipykernel_1343637/3780874574.py:1: FutureWarning: Passing literal json to 'read_json' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.
  pd.read_json(json.dumps(ibmdata['Time Series (5min)'])).transpose()
1. open 2. high 3. low 4. close 5. volume
2024-08-20 19:55:00 195.980 195.990 195.98 195.990 35.0
2024-08-20 19:50:00 195.980 195.980 195.98 195.980 299.0
2024-08-20 19:35:00 196.000 196.000 196.00 196.000 25.0
2024-08-20 19:30:00 196.000 196.000 196.00 196.000 1.0
2024-08-20 19:20:00 195.980 195.980 195.98 195.980 106.0
... ... ... ... ... ...
2024-08-20 11:00:00 194.840 194.840 194.59 194.630 9074.0
2024-08-20 10:55:00 194.960 195.000 194.89 194.895 12864.0
2024-08-20 10:50:00 194.935 194.990 194.88 194.925 17711.0
2024-08-20 10:45:00 194.960 195.150 194.82 194.970 24543.0
2024-08-20 10:40:00 195.050 195.065 194.97 194.970 14711.0

100 rows × 5 columns

  • json
  • json.dumps (converts python data into json string)
  • json.loads (converts json string into python data)

problem

json data is given for color values in color.json file . write a function to find value of given color.

%%file color.json
[
    {
        "color": "red",
        "value": "#f00"
    },
    {
        "color": "black",
        "value": "#000"
    }
]
Overwriting color.json
import json

def colorvalue(colorjsonfile, color):
    with open(colorjsonfile) as f:
        colordata = json.loads(f.read())

    for color_ in colordata:
        if color_['color'] == color:
            return color_['value']
colorvalue("color.json", "red")
'#f00'
pd.read_json("color.json") # even filename works !
color value
0 red #f00
1 black #000
import json

def find_color_value(json_data, color_name):
    # Parse the JSON data
    data = json.loads(json_data)
    
    # Iterate through the list to find the color
    for item in data:
        if item['color'] == color_name:
            return item['value']
    
    # If color is not found, return None
    return None
with open("color.json") as f:
    print(find_color_value(f.read(), "red"))
#f00

Scraping data from internet

lets do a simple search on two search engines and observe the url

  • https://www.google.com/search?q=json&sca_esv=fea2c737c8eb45dd&sca_upv=1&source=hp&ei=_I_FZrLjF86MnesPzvbK2Qg&iflsig=AL9hbdgAAAAAZsWeDBTTXHiT3Rvamc2LK9v18m793lt7&ved=0ahUKEwiy0bOCwYWIAxVORmcHHU67MosQ4dUDCA8&uact=5&oq=json&gs_lp=Egdnd3Mtd2l6IgRqc29uMgsQABiABBixAxiDATILEAAYgAQYsQMYgwEyCxAAGIAEGLEDGIMBMgsQABiABBixAxiDATILEAAYgAQYsQMYgwEyCxAAGIAEGLEDGIMBMgsQABiABBixAxiDATILEAAYgAQYsQMYgwEyCBAAGIAEGLEDMgsQABiABBixAxiDAUj0EFDlCFiADHABeACQAQCYAfMBoAH7BqoBBTAuMS4zuAEDyAEA-AEBmAIFoALJB6gCCsICEBAAGAMY5QIY6gIYjAMYjwHCAhAQLhgDGOUCGOoCGIwDGI8BwgIOEAAYgAQYsQMYgwEYigXCAhEQLhiABBixAxjRAxiDARjHAcICExAuGIAEGLEDGNEDGMcBGIoFGArCAgUQABiABMICDhAuGIAEGLEDGIMBGIoFwgIREC4YgAQYsQMYgwEYxwEYrwHCAhQQLhiABBixAxiDARjHARiKBRivAZgDLJIHBTEuMC40oAerJg&sclient=gws-wiz

  • https://duckduckgo.com/?t=ffab&q=json&ia=web

  • https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=IBM&interval=5min&apikey=demo

HTTP protocol

  • get (data that you need given to server is empbed in url)
  • post (form)
  • put
  • delete