Click here to Skip to main content
15,357,358 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Data1 =
{
"accounts": [
{
"userLoginKey": "082223”,
"accountId": "j5j556f"
},
{
"userLoginKey": "097644”,
"accountId": "qx954fjg"
},
{
"userLoginKey": "089675”,
"accountId": “h54ub5”
},
{
"userLoginKey": "084575",
"accountId": “jfh9nh5”
},
{
"userLoginKey": "088838",
"accountId": "i6kn6j"
}
]
}

Data2 =
{
"finance_assets": [
{
"contractorAccountId": “j5j556f”,
"balance": 3999
},
{
"contractorAccountId": “qx954fjg”,
"balance": 3084775
},
{
"contractorAccountId": “khojoh7”,
"balance": 1000000 -
},
{
"contractorAccountId": "h54ub5",
"balance": 113578277
},
{
"contractorAccountId": “jngi408”,
"balance": 31116496 -
},
{
"contractorAccountId": "jfh9nh5",
"balance": 5
},
{
"contractorAccountId": “njvgj54g”,
"balance": 22
},
{
"contractorAccountId": "i6kn6j",
"balance": 3000
},
{
"contractorAccountId": "qx954fjg",
"balance": 1200
}
]
}

What I have tried:

Python: How do I get the total of balance, except for that accountId and contractorAccountId are not equal and with a condition
From Data1 and Data2




The desired output1:
How do I get the total of balance, except for that accountId and contractorAccountId are not equal?

{
"total_Assets": 116671278
}


The desired output2:
Please adjust the output so that the total assets of the top 10 (can be specified) can also be output.
For example: 3999 3084775 113578277 5 22 3000 1200
→ 5 < 22 < 1200 < 3000 < 3999 < 3084775 < 113578277 if getting the total of top4
→ 113578277 + 3084775 + 3999 + 3000
= 116670051
So, it should be like this:

{
"total_Assets": 116670051
}
Posted
Updated 24-Mar-22 21:36pm

1 solution

Try
Python
import json

Data1 = """{
  "accounts": [{
      "userLoginKey": "082223",
      "accountId": "j5j556f"
    },
    {
      "userLoginKey": "097644",
      "accountId": "qx954fjg"
    },
    {
      "userLoginKey": "089675",
      "accountId": "h54ub5"
    },
    {
      "userLoginKey": "084575",
      "accountId": "jfh9nh5"
    },
    {
      "userLoginKey": "088838",
      "accountId": "i6kn6j"
    }
  ]
}"""

Data2 = """ {
  "finance_assets": [{
      "contractorAccountId": "j5j556f",
      "balance": 3999
    },
    {
      "contractorAccountId": "qx954fjg",
      "balance": 3084775
    },
    {
      "contractorAccountId": "khojoh7",
      "balance": -1000000
    },
    {
      "contractorAccountId": "h54ub5",
      "balance": 113578277
    },
    {
      "contractorAccountId": "jngi408",
      "balance": -31116496
    },
    {
      "contractorAccountId": "jfh9nh5",
      "balance": 5
    },
    {
      "contractorAccountId": "njvgj54g",
      "balance": 22
    },
    {
      "contractorAccountId": "i6kn6j",
      "balance": 3000
    },
    {
      "contractorAccountId": "qx954fjg",
      "balance": 1200
    }
  ]
}"""

# parse the JSON strings into Python data
acc = json.loads(Data1)
ass = json.loads(Data2)

# list of account Ids
aid = [ x.get('accountId') for  x in acc.get('accounts') ]

# list of balances, filtering in only contractorId correponding to aid items
bal = [ x.get('balance') for x in ass.get('finance_assets') if x.get('contractorAccountId') in aid]

# sum of the balances
total_assets = sum(bal)
print(total_assets)
   

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900