【问题标题】:Formatting a Python string payload value for request为请求格式化 Python 字符串有效负载值
【发布时间】:2021-03-17 14:10:38
【问题描述】:

我正在尝试替换 python 请求下面的 payload_1 中的值;参数值动态传递。 payload_2 应该看起来像 payload_1 只有键 Date 和 Routing 的值应该是我可以传入的变量。

我无法更改标头 'Content-Type':'text/plain',因为服务器期望这样

参数值是该格式的 TODAY'S_DATE 和 ROUTING_VALUE;

payload_1 = "{\n    \"ABCD\": [\n  {\n \"Date\": \"20200-03-08T00:00:00.000000\",\n  \"type\": \"acctfile\",\n    \"Routing\": \"routing_\"\n  }\n ]\n}"
payload_2 = "{\n    \"ABCD\": [\n  {\n \"Date\": \"TODAY'S_DATE\",\n  \"type\": \"acctfile\",\n    \"Routing\": \"ROUTING_VALUE\"\n  }\n ]\n}"

最终目标是将这个payload传递到下面这个sn-p中。

url = "https://....."
headers = {'userToken': 'token', 'Content-Type': 'text/plain'}
response = requests.request("POST", url, headers=headers, data=payload, verify=False)
print(response.text)

【问题讨论】:

  • “我尝试使用 + 来连接转义符和参数字符串,但不起作用。” ——“不工作”是什么意思?所需的有效载荷是什么样的?
  • 我的意思是我试图将字符串分成几个部分并传递用“+”括起来的变量
  • 我重复一遍,“所需的有效载荷是什么样的?”
  • 所需的负载看起来像 payload_1
  • 如果你已经知道payload是什么样的,那么问题出在哪里?您说您正在尝试连接某些东西,但您没有显示该尝试,因此我们无法猜测您的问题是什么。

标签: python string


【解决方案1】:

如果您将字符串加载为 JSON 对象,则替换其中的值很简单。

import datetime
import json

template = "{\n    \"ABCD\": [\n  {\n \"Date\": \"20200-03-08T00:00:00.000000\",\n  \"type\": \"acctfile\",\n    \"Routing\": \"ACCT_1442309\"\n  }\n ]\n}"

o = json.loads(template)

date, routing = datetime.date.today(), 'ABCDEF'

d = o['ABCD'][0]

d['Date'] = date.strftime('%Y-%m-%dT00:00:00.000000')
d['Routing'] = routing

payload = json.dumps(o, indent=4)
print(payload)

【讨论】:

  • 天才 ;) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 2020-09-04
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多