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)