pythonjsonpython-requestspostman

how to push json values to API one by one from JSON array using Python


I have a .json file with some JSON data like below,

main.json

[
    {
        "App_id": "",
        "mobile_No": 8****65128,
        "loan_type": 33,
        "bank_id": 114,
        "latest_status": "Rejected",
        "bank_appid": "",
        "pan_no": "",
        "cust_downloadedapp": {
            "date": ""
        },
        "cust_completedapp": {
            "date": ""
        },
        "rejected": {
            "date": "",
            "rejection_reason": ""
        },
        "sanctioned": {
            "amount": "",
            "date": "",
            "tenure": "",
            "interest_rate": ""
        },
        "offer_accepted": {
            "date": ""
        },
        "disbursed": {
            "amount": "",
            "los_id": "",
            "date": ""
        }
    },
    {
        "App_id": "",
        "mobile_No": 70007*****8,
        "loan_type": 33,
        "bank_id": 114,
        "latest_status": "Rejected",
        "bank_appid": "",
        "pan_no": "",
        "cust_downloadedapp": {
            "date": ""
        },
        "cust_completedapp": {
            "date": ""
        },
        "rejected": {
            "date": "",
            "rejection_reason": ""
        },
        "sanctioned": {
            "amount": "",
            "date": "",
            "tenure": "",
            "interest_rate": ""
        },
        "offer_accepted": {
            "date": ""
        },
        "disbursed": {
            "amount": "",
            "los_id": "",
            "date": ""
        }
    },
    {
        "App_id": "",
        "mobile_No": 84*****399,
        "loan_type": 33,
        "bank_id": 114,
        "latest_status": "Rejected",
        "bank_appid": "",
        "pan_no": "",
        "cust_downloadedapp": {
            "date": ""
        },
        "cust_completedapp": {
            "date": ""
        },
        "rejected": {
            "date": "",
            "rejection_reason": ""
        },
        "sanctioned": {
            "amount": "",
            "date": "",
            "tenure": "",
            "interest_rate": ""
        },
        "offer_accepted": {
            "date": ""
        },
        "disbursed": {
            "amount": "",
            "los_id": "",
            "date": ""
        }
    }
]

My issue is how I parse this below code to API And I also want to parse the values one by one:

{
    "App_id": "",
    "mobile_No": 84****0399,
    "loan_type": 33,
    "bank_id": 114,
    "latest_status": "Rejected",
    "bank_appid": "",
    "pan_no": "",
    "cust_downloadedapp": {
        "date": ""
    },
    "cust_completedapp": {
        "date": ""
    },
    "rejected": {
        "date": "",
        "rejection_reason": ""
    },
    "sanctioned": {
        "amount": "",
        "date": "",
        "tenure": "",
        "interest_rate": ""
    },
    "offer_accepted": {
        "date": ""
    },
    "disbursed": {
        "amount": "",
        "los_id": "",
        "date": ""
    }
}

JSON value to API as post method using Python? And also need to call each value once from the JSON array how to do this using Python which library is best and fast for this?

Update on the Question

I want to update my main.json file like below for each iteration

main.json

[
    {
        "App_id": "",
        "mobile_No": 8****65128,
        "loan_type": 33,
        "bank_id": 114,
        "latest_status": "Rejected",
        "bank_appid": "",
        "pan_no": "",
        "cust_downloadedapp": {
            "date": ""
        },
        "cust_completedapp": {
            "date": ""
        },
        "rejected": {
            "date": "",
            "rejection_reason": ""
        },
        "sanctioned": {
            "amount": "",
            "date": "",
            "tenure": "",
            "interest_rate": ""
        },
        "offer_accepted": {
            "date": ""
        },
        "disbursed": {
            "amount": "",
            "los_id": "",
            "date": ""
        },
        "status":"success"
    },
    {
        "App_id": "",
        "mobile_No": 70007*****8,
        "loan_type": 33,
        "bank_id": 114,
        "latest_status": "Rejected",
        "bank_appid": "",
        "pan_no": "",
        "cust_downloadedapp": {
            "date": ""
        },
        "cust_completedapp": {
            "date": ""
        },
        "rejected": {
            "date": "",
            "rejection_reason": ""
        },
        "sanctioned": {
            "amount": "",
            "date": "",
            "tenure": "",
            "interest_rate": ""
        },
        "offer_accepted": {
            "date": ""
        },
        "disbursed": {
            "amount": "",
            "los_id": "",
            "date": ""
        }
    },
    {
        "App_id": "",
        "mobile_No": 84*****399,
        "loan_type": 33,
        "bank_id": 114,
        "latest_status": "Rejected",
        "bank_appid": "",
        "pan_no": "",
        "cust_downloadedapp": {
            "date": ""
        },
        "cust_completedapp": {
            "date": ""
        },
        "rejected": {
            "date": "",
            "rejection_reason": ""
        },
        "sanctioned": {
            "amount": "",
            "date": "",
            "tenure": "",
            "interest_rate": ""
        },
        "offer_accepted": {
            "date": ""
        },
        "disbursed": {
            "amount": "",
            "los_id": "",
            "date": ""
        },
        "status":"success"
    }
]

we have to save status = success in each dict as parameter value if it a success and fail if it fails in the same main.json file.

mycode.py

import json
from numpy import equal 
import requests
new_path = 'new.json'
with open(new_path, 'r') as f:
    data = json.load(f)
    for line in data:
        
        r = requests.post('https://apiuat************', json=line)
        line['status'] = 'success'
        print(r.json())

Solution

  • try

    import json 
    import requests
    
    with open("main.json") as f:
        data = json.load(f)
        for line in data:
            r = requests.post('URL',json=line)
            print(r.status_code)