在负载中使用变量

Use variables in payload

我有以下有效载荷,我想用它来发出 post 请求。如果我希望 Age、Average Family Size 和 City 的每个值都是变量,我该如何重新格式化?

payload = "{\"Age\": \"50\",\n \"Average Family Size\": \"2.5\",\n \"City\": \"Washington\"}"

这是 F 弦的一个很好的用途。

假设您的变量命名为 agesizecity:

payload = f'{"Age": "{age}",\n "Average Family Size": "{size}",\n "City": "city"}'

Python 2.7老式%s字符串插值:

payload = f'{"Age": "%s",\n "Average Family Size": "%s",\n "City": "%s"}' % (age, size, city)

此外,通过将整个字符串括在单引号中,您不必转义双引号。

您可以使用字典和 json 模块,但是,如果您可以使用更现代的 python 版本,f-strings 会更好:

import json

def get_payload(age, family_size, city):
    return json.dumps({
        "Age": age,
        "Average Family Size": family_size,
        "City": city
    })

print(get_payload(21, 2, 'Washington DC'))

输出:

{"Age": 21, "Average Family Size": 2, "City": "Washington DC"}