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

从文本文件向Python Requests传递数据仅传入最后一行的问题

问题解决:循环读取每行数据并发送请求

你的问题核心是请求代码放在了循环外部——循环中只是反复将data变量更新为当前行内容,但整个循环结束后才执行一次requests.post,自然只会发送最后一行的数据。

修正方法很直接,把请求操作移到循环内部,让每读取一行就发送一次请求,同时要去掉每行末尾的换行符(避免JSON格式异常):

import requests
import json

cookies = {
    'cookieconsent_status': 'deny',
    'AWSALB': '**************************************************/Q==',
    'AWSALBCORS': '*********************************************==',
    'ctfloginPha': '******************************************************n',
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
    'Accept': 'application/json',
    'Accept-Language': 'en-US,en;q=0.5',
    # 'Accept-Encoding': 'gzip, deflate, br',
    'Content-Type': 'application/json; charset=utf-8',
    'Authorization': '**************************==',
    'X-Requested-With': 'XMLHttpRequest',
    'Origin': 'https://**************',
    'Connection': 'keep-alive',
    'Referer': 'https://********************',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
}

with open('person.txt') as fl:
    for line in fl:
        # 移除每行末尾的换行符和空白字符
        data = line.strip()
        # 将请求放入循环内,每行数据对应一次请求
        response = requests.post(
            'https://***************************************',
            cookies=cookies,
            headers=headers,
            data=data,
        )
        print(response.json())

额外补充两个优化建议:

  • 原文本格式{person:123456}不符合标准JSON规范(键名需用双引号),如果接口返回格式错误,可转成标准JSON:
    # 提取person值并生成标准JSON字符串
    person_id = line.strip().split(':')[1].strip('}')
    data = json.dumps({"person": int(person_id)})
    
  • 若需避免频繁请求给服务器造成压力,可导入time模块,在每次请求后添加time.sleep(1),暂停1秒再发送下一次请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:33:26