You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python请求中传递已存在的字符串变量作为原始格式数据

如何在Python请求中传递已存在的字符串变量作为原始格式数据

其实你不用太纠结“原始格式”这个点——Python里的r''只是定义字符串时的语法糖,用来写字符串时不用手动转义反斜杠,变量里实际存储的字符串内容,和普通字符串是完全一样的。只要你的现有字符串内容是正确的JSON格式,直接传给data参数就行,不需要额外转换。下面分情况给你说具体怎么操作:

情况1:你的现有字符串内容已经是正确的JSON格式

如果你的变量里的字符串,和原来用r''定义的内容完全一致(比如已经包含了正确的转义,像\"这种),那直接用就行,代码如下:

# 假设你已经有了这个预存的变量
existing_data = '{"desc":"a man walking","useOriginPrompt":false,"fileList":[],"modelID":"23010","quantity":"1","extra":{"promptStruct":"{\\"value\\":[{\\"type\\":\\"paragraph\\",\\"children\\":[{\\"text\\":\\"a man walking\\"}]}],\\"length\\":13,\\"plainLength\\":13,\\"rawLength\\":13}"}}'

# 直接把变量传给data参数,和原来用r''定义的效果完全一样
response = requests.post(
    "https://theapi.com/api/multimodal/generate/video",
    params=params,
    cookies=cookies,
    headers=headers,
    data=existing_data,   
)

情况2:你的现有字符串有转义问题(比如引号没转义)

如果你的预存字符串是未转义的(比如里面的嵌套双引号没有写成\"),手动改转义容易出错,推荐用json模块来处理,把字典转成标准的JSON字符串:

import json

# 先把数据写成字典形式(不用管转义,Python会帮你处理)
data_dict = {
    "desc": "a man walking",
    "useOriginPrompt": False,
    "fileList": [],
    "modelID": "23010",
    "quantity": "1",
    "extra": {
        "promptStruct": '{"value":[{"type":"paragraph","children":[{"text":"a man walking"}]}],"length":13,"plainLength":13,"rawLength":13}'
    }
}

# 用json.dumps转成标准JSON字符串
existing_data = json.dumps(data_dict)

# 再传给data参数
response = requests.post(
    "https://theapi.com/api/multimodal/generate/video",
    params=params,
    cookies=cookies,
    headers=headers,
    data=existing_data,   
)

更省心的写法:直接传字典给json参数

其实curl_cffi的requests和原生requests一样,支持直接传字典给json参数,它会自动帮你转成JSON字符串,还能自动处理Content-Type(当然你headers里已经设置了,也不冲突):

data_dict = {
    "desc": "a man walking",
    "useOriginPrompt": False,
    "fileList": [],
    "modelID": "23010",
    "quantity": "1",
    "extra": {
        "promptStruct": '{"value":[{"type":"paragraph","children":[{"text":"a man walking"}]}],"length":13,"plainLength":13,"rawLength":13}'
    }
}

response = requests.post(
    "https://theapi.com/api/multimodal/generate/video",
    params=params,
    cookies=cookies,
    headers=headers,
    json=data_dict,  # 这里用json参数代替data,更省心
)

补充说明

原来的r''只是让你在写字符串的时候不用反复打\来转义,但一旦字符串存在变量里,它和普通字符串就没区别了——核心是字符串内容要符合接口要求的JSON格式,而不是“必须是原始字符串类型”。只要内容对,直接用就好~

备注:内容来源于stack exchange,提问作者Noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 08:48:02