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

Python使用requests.post发送请求时如何动态传入文件读取的请求数据

问题解决方法

你当前的代码存在两个核心问题:

  • 手写的JSON字符串存在语法错误:"eonId": 3 后缺失逗号,且手动拼接JSON字符串极易出现格式错误、转义失败的问题
  • requests发送JSON请求无需手动将字典包裹为字符串,框架提供了更稳妥的传参方式,也方便你从文件读取内容动态填充字段

正确实现步骤

  1. 从文件读取需要填充的name和subnet值
    假设你存储数据的文件每行对应一个值(第一行是name,第二行是subnet),参考如下读取代码:
# 按实际情况替换文件路径,注意处理编码
with open('ip_data.txt', 'r', encoding='utf-8') as f:
    # 读取所有非空行,去掉首尾空白字符
    content_lines = [line.strip() for line in f if line.strip()]
name_value = content_lines[0]
subnet_value = content_lines[1]
  1. 构造请求参数,直接使用Python字典即可,无需手动转字符串
import requests

headers = {
    'Accept': 'application/json',
}
# 填充读取到的值,注意补上之前缺失的逗号
payload = {
    "name": name_value,
    "subnet": subnet_value,
    "eonId": 3,
    "environment": "PROD"
}
  1. 发送POST请求,使用json参数传递构造好的字典
response = requests.post(
    'https://example.com',  # 注意原代码中URL缺失闭合的单引号,这里已修正
    headers=headers,
    json=payload,  # 传入字典即可,requests会自动转成合法JSON,自动补全Content-Type请求头
    auth=('', '')
)

# 可按需打印响应结果调试
print(response.status_code)
print(response.text)

注意事项

  • 不推荐手动拼接JSON字符串:如果值中包含引号、特殊字符,手动拼接极易触发JSON格式错误。如果确实需要传字符串格式的JSON,也要通过json.dumps(字典对象)生成合法字符串,不要手写:
    import json
    data_str = json.dumps(payload)
    # 此时才可以用data=data_str的方式传参
    
  • 使用json参数传参时,requests会自动设置Content-Type: application/json请求头,无需手动在headers中重复配置。

内容的提问来源于stack exchange,提问作者Ankit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:54:17