Home > Software engineering >  selecting a key-value from API response
selecting a key-value from API response

Time:04-29

I have this response from an API:

payment_object = {'acquirer_response': '{"object":"transaction", "pix_expiration_date":"2022-04-28T13:46:01.000Z"}'}

how can i select the pix_expiration_date key??? I have tried:

payment_object['acquirer_response']['pix_expiration_date']

it doesnt work and it returns to me: TypeError: string indices must be integers

CodePudding user response:

Since you’re looking for json

Here’s a code you can start with, keep the good work :)

import json
#importing json
payment_object = {'acquirer_response': '{"object":"transaction", "pix_expiration_date":"2022-04-28T13:46:01.000Z"}'}
###
dic=json.loads(payment_object["acquirer_response"])
#loading the object
dic['pix_expiration_date']
#it will return 2022-04-28T13:46:01.000Z

CodePudding user response:

Are you the owner of the api? If yes:

Edit the response, because it’s sending an string not an object/dictionary

If No:

Convert the string to an dictionary, like if you using python try json library

CodePudding user response:

Your json is not valid. I don't know what language are you using, this code works for javascript, you can easily translate it to another language

var payment_object = {'acquirer_response': '{"object":"transaction", "pix_expiration_date":"2022-04-28T13:46:01.000Z"}'};
var s=JSON.stringify(payment_object).replaceAll("\\","").replaceAll("\"{","{").replaceAll("}\"","}");

var paymentObject=JSON.parse(s);
console.log(paymentObject['acquirer_response']['pix_expiration_date']);  // 2022-04-28T13:46:01.000Z
  • Related