Как добавить словарь в URL как запрос параметра Python
На самом деле я вызываю сторонний API и требование добавить словарь JSON как есть. см. ниже пример URL
https://pguat.paytm.com/oltp/HANDLER_INTERNAL/getTxnStatus?JsonData={ "МИР":"MID117185435","OrderId":"ORDR4o22310421111", "CHECKSUMHASH": "NU9wPEWxmbOTFL2%2FUKr3lk6fScfnLy8wORc3YRylsyEsr2MLRPn%2F3DRePtFEK55ZcfdTj7mY9vS2qh%2Bsm7oTRx%2Fx4BDlvZBj%2F8Sxw6s%2F9io%3D"}
Имя параметра запроса в "JsonData" и данные должны быть в {} скобках.
import requests
import json
from urllib.parse import urlencode, quote_plus
import urllib.request
import urllib
data = '{"MID":"MID117185435","ORDERID":"ORDR4o22310421111","CHECKSUMHASH":"omcrIRuqDP0v%2Fa2DXTlVI4XtzvmuIW56jlXtGEp3S%2B2b1h9nU9cfJx5ZO2Hp%2FAN%2F%2FyF%2F01DxmoV1VHJk%2B0ZKHrYxqvDMJa9IOcldrfZY1VI%3D"}'
jsonData = data
uri = 'https://pguat.paytm.com/oltp/HANDLER_INTERNAL/getTxnStatus?jsonData='+str(quote_plus(data))
r = requests.get(uri)
print(r.url)
print(r.json)
print(r.json())
вывод на консоль (r.url)
Он преобразует {} в% 7B, и я хочу {} как есть..
Плз помогите...
1 ответ
Вам нужно отменить quote_plus, импортировав и используя unquote_plus.
Я не проверял твои ссылки, только твою строку.
Когда я печатаю вашу строку URI, я получаю это как мой вывод:
Если я окружу это так:
print(str(unquote_plus(uri)))
Я получаю это в качестве вывода:
https://pguat.paytm.com/oltp/HANDLER_INTERNAL/getTxnStatus?jsonData={ "МИР":"MID117185435","OrderId":"ORDR4o22310421111","CHECKSUMHASH":"omcrIRuqDP0v%2Fa2DXTlVI4XtzvmuIW56jlXtGEp3S%2B2b1h9nU9cfJx5ZO2Hp%2FAN%2F%2FyF%2F01DxmoV1VHJk%2B0ZKHrYxqvDMJa9IOcldrfZY1VI%3D"}