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

如何将JAKMain.py输出的实时流数据写入pandas DataFrame?

问题解答

现有修改方案的问题

你目前的修改方案无法实现需求,存在三个核心问题:

  • 你写的printresult = result['Data'][i], end=""存在语法错误,end是print()函数的专属参数,变量赋值不支持该写法,运行会直接报错
  • JAKMain.py中的while True是死循环,你直接from JAKMain import *的时候,代码会直接卡在JAKMain的无限循环里,根本拿不到printresult变量,也没办法执行后续DataFrame相关逻辑
  • 即使你修正语法,循环里每次赋值都会覆盖上一次的printresult值,你也拿不到完整的100条批次数据

可行实现方案

优先推荐第一种方案,逻辑最简单,没有额外依赖:

方案1:直接在JAKMain.py中整合DataFrame写入逻辑

不需要拆分两个文件,直接在原有采集代码里维护DataFrame即可,示例代码如下:

import time
import pandas as pd
import api_con # 你原来的api依赖

# 初始化空DataFrame,列名和你字典的key对应,可按需加更多字段
df = pd.DataFrame(columns=['DDDD', '采集时间'])

while True:
    time.sleep(3)
    result = api_con.AWS10000()
    collect_time = time.strftime('%H:%M:%S')
    print(collect_time)
    # 直接取前100条数据,无需写循环判断,更简洁
    batch_data = result['Data'][:100]
    # 批次数据转临时DataFrame,追加采集时间戳
    temp_df = pd.DataFrame(batch_data)
    temp_df['采集时间'] = collect_time
    # 合并到全局DataFrame中
    df = pd.concat([df, temp_df], ignore_index=True)
    
    # 这里可按需添加自定义操作,比如打印最新数据、存储到文件等
    print(f"当前DataFrame总条数:{len(df)}")

提示:如果数据采集长期运行,内存中DataFrame会越来越大,建议根据数据量定期将df写入本地文件(比如csv、parquet)并清空内存df,避免内存溢出。


方案2:分离采集和处理逻辑(如果必须拆成两个文件)

把JAKMain的采集逻辑改成生成器函数,不要把死循环写在顶层,然后在处理脚本里迭代生成器拿数据:

JAKMain.py修改后代码:

import time
import api_con

def get_realtime_data():
    while True:
        time.sleep(3)
        result = api_con.AWS10000()
        collect_time = time.strftime('%H:%M:%S')
        print(collect_time)
        # 一次返回整批100条数据和对应采集时间
        yield result['Data'][:100], collect_time

处理脚本代码:

import pandas as pd
from JAKMain import get_realtime_data

# 初始化空DataFrame
df = pd.DataFrame(columns=['DDDD', '采集时间'])

# 迭代生成器拿实时数据
for batch_data, collect_time in get_realtime_data():
    temp_df = pd.DataFrame(batch_data)
    temp_df['采集时间'] = collect_time
    df = pd.concat([df, temp_df], ignore_index=True)
    # 按需添加其他处理逻辑
    print(df.tail(5)) # 可打印最新5条数据验证效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:27:02