[FIXED] So extrahieren Sie Daten aus einer JSON-Antwort, die von einer API in Python, Django, erstellt wurde

Ausgabe

Ich erstelle eine Gebühr und möchte daraus ihre „hosted_url“ nehmen, um einen Benutzer von der Seite umzuleiten.

Ich versuche, es aus JSON zu extrahieren, aber ich bin Neuling und weiß nicht wie

        ...
        url = "https://api.commerce.coinbase.com/charges"

        payload = {
            "local_price": {
                "amount": 1,
                "currency": USDT
            },
            "name": "Test for fun",
            "description": "Project 2",
            "pricing_type": "fixed_price"
        }
        headers = {
            "accept": "application/json",
            "X-CC-Version": "2018-03-22",
            "X-CC-Api-Key" : "**********",
            "content-type": "application/json"
        }

        response = requests.post(url, json=payload, headers=headers)

        print(response.text)

Dies ist ein Code, um eine Anfrage an eine API zu stellen, um eine Gebühr zu erstellen, und in JSON Response erhalte ich diese Felder:

{
   "data":{
       "code": "123DVAS",
       "hosted_url": "https://commerce.coinbase.com/charges/123DVAS",
       ...
   }
}

Ich möchte diese Nachricht ‘123DVAS’ irgendwie in eine Variable einfügen oder eine Umleitung wie folgt vornehmen:

return render(request, 'https://commerce.coinbase.com/charges/123DVAS')

Lösung

Sie können folgendermaßen vorgehen:

# Suppose it's your response looks like this
response = {"hosted_url": "https://commerce.coinbase.com/charges/123DVAS"}
id_fecthed = response.get('hosted_url').split('/')[-1]

# You can redner like this
render(request, f'https://commerce.coinbase.com/charges/{id_fecthed}')

# If you sure that always you want to redirect to hosted_url
# Then you can use this
render(request, response.get('hosted_url'))

Bearbeiten:

Vollständiger Code mit aus Anfragen gelesenen Daten.

import json

response = requests.post(url, json=payload, headers=headers)
data = json.loads(response.text)
hosted_url = data.get("data",{}).get('hosted_url')
if hosted_url:
    id_fecthed = hosted_url.split('/')[-1]
    return redirect(f'https://commerce.coinbase.com/charges/{id_fecthed}')
else:
    print('Host URL not available')


Beantwortet von –
Rahul KP


Antwort geprüft von –
David Marino (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like