【问题标题】:How to add dictionary in url as query param python request如何在url中添加字典作为查询参数python请求
【发布时间】:2018-03-21 06:25:22
【问题描述】:

实际上,我正在调用 3rd 方 API 并要求按原样添加 json 字典。参考下面的 URL 示例

https://pguat.paytm.com/oltp/HANDLER_INTERNAL/getTxnStatus?JsonData={"MID":"MID117185435","ORDERID":"ORDR4o22310421111", “校验和”: "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)输出

https://pguat.paytm.com/oltp/HANDLER_INTERNAL/getTxnStatus?jsonData=%7B%22MID%22%3A%22MEDTPA37902117185435%22%2C%22ORDERID%22%3A%22medipta1521537969o72718962111%22%2C%22CHECKSUMHASH%22%3A%22omcrIRuqDP0v%252Fa2DXTlVI4XtzvmuIW56jlXtGEp3S%252B2b1h9nU9cfJx5ZO2Hp%252FAN%252F%252FyF%252F01DxmoV1VHJk%252B0ZKHrYxqvDMJa9IOcldrfZY1VI%253D%22%7D

它将 {} 转换为 %7B,我希望 {} 保持原样..

请帮忙...

【问题讨论】:

    标签: python queryparam


    【解决方案1】:

    您需要通过导入和使用 unquote_plus 来撤消 quote_plus。

    我没有针对您的网址进行测试,只是针对您的字符串进行测试。

    当我打印你的 uri 字符串时,我得到这个作为我的输出:

    https://pguat.paytm.com/oltp/HANDLER_INTERNAL/getTxnStatus?jsonData=%7B%22MID%22%3A%22MID117185435%22%2C%22ORDERID%22%3A%22ORDR4o22310421111%22%2C%22CHECKSUMHASH%22%3A%22omcrIRuqDP0v%252Fa2DXTlVI4XtzvmuIW56jlXtGEp3S%252B2b1h9nU9cfJx5ZO2Hp%252FAN%252F%252FyF%252F01DxmoV1VHJk%252B0ZKHrYxqvDMJa9IOcldrfZY1VI%253D%22%7D

    如果我这样包围它:

    print(str(unquote_plus(uri)))
    

    我得到这个作为输出:

    https://pguat.paytm.com/oltp/HANDLER_INTERNAL/getTxnStatus?jsonData= { “MID”: “MID117185435”, “ORDERID”: “ORDR4o22310421111”, “CHECKSUMHASH”: “omcrIRuqDP0v%2Fa2DXTlVI4XtzvmuIW56jlXtGEp3S%2B2b1h9nU9cfJx5ZO2Hp%2FAN%2F%2FyF%2F01DxmoV1VHJk%2B0ZKHrYxqvDMJa9IOcldrfZY1VI%3D”} P >

    【讨论】:

      猜你喜欢
      • 2021-05-13
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 2018-02-13
      • 2019-03-20
      • 1970-01-01
      相关资源
      最近更新 更多