Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用pandas(数据帧)中的另一个数据覆盖一个数据_Python_Pandas_Postgresql_Dataframe_Timer - Fatal编程技术网

Python 用pandas(数据帧)中的另一个数据覆盖一个数据

Python 用pandas(数据帧)中的另一个数据覆盖一个数据,python,pandas,postgresql,dataframe,timer,Python,Pandas,Postgresql,Dataframe,Timer,定期(每120秒)获取数据,但最近的数据会覆盖SQL DB中以前的数据。我希望保存所有数据。此外,计时器是否正确 import sqlalchemy as sa import psycopg2 import requests as rq import pandas as pd import json import time start_time = time.time() while True: temp = pd.DataFrame() df = pd.DataFrame()

定期(每120秒)获取数据,但最近的数据会覆盖SQL DB中以前的数据。我希望保存所有数据。此外,计时器是否正确

import sqlalchemy as sa
import psycopg2
import requests as rq
import pandas as pd
import json
import time

start_time = time.time()
while True:
    temp = pd.DataFrame()
    df = pd.DataFrame()
    vehicleList = {"SN63NBK", "YY67UTP"}
    for ids in vehicleList:
        r = rq.get('https://api.tfl.gov.uk/Vehicle/' + ids + '/Arrivals')

        r = r.text
        temp = pd.read_json(r)
        temp['Type'] = 'ids'
        df = pd.concat([df, temp], sort=False).reset_index(drop=True)

    engine = sa.create_engine('postgresql+psycopg2://postgres:3434@127.0.0.1/postgres')
    df['timing'] = list(map(lambda x: json.dumps(x), df['timing']))
    df.to_sql('tfl_bus_pg6', engine, if_exists='replace', index=False)
time.sleep(120.0 - ((time.time() - start_time) % 120.0))

我稍微更改了您的代码,但我认为主要问题在于
if_存在
参数,您应该将该参数设置为
append
,正如@K753在评论中提到的那样

另外,
YY67UTP
id不返回任何内容,因此我用站点中的另一个随机id替换它,以说明代码是如何工作的

def数据发生器(车辆):
“”“为每个请求生成一个数据帧”“”
对于车辆中的ID:
时间。睡眠(1)
r=rq.get('https://api.tfl.gov.uk/Vehicle/“+ids+”/Arrivals')
temp=pd.read\u json(r.text)
temp['Type']=id
屈服温度
尽管如此:
#如果需要,如何打破while循环?
车辆列表={“SN63NBK”,“YY67UTP”}
df=pd.concat(_data_gen(车辆列表),sort=False,ignore_index=True)
engine=sa.create_engine('postgresql+psycopg2://postgres:3434@127.0.0.1/博士后’)
df['timing']=list(映射(lambda x:json.dumps(x),df['timing']))
df.to_sql('tfl_总线_pg6',引擎,如果存在='append',index=False)
时间。睡眠(120)

我稍微更改了您的代码,但我认为主要问题在于
如果存在
参数,您应该将该参数设置为
append
,正如@K753在评论中提到的那样

另外,
YY67UTP
id不返回任何内容,因此我用站点中的另一个随机id替换它,以说明代码是如何工作的

def数据发生器(车辆):
“”“为每个请求生成一个数据帧”“”
对于车辆中的ID:
时间。睡眠(1)
r=rq.get('https://api.tfl.gov.uk/Vehicle/“+ids+”/Arrivals')
temp=pd.read\u json(r.text)
temp['Type']=id
屈服温度
尽管如此:
#如果需要,如何打破while循环?
车辆列表={“SN63NBK”,“YY67UTP”}
df=pd.concat(_data_gen(车辆列表),sort=False,ignore_index=True)
engine=sa.create_engine('postgresql+psycopg2://postgres:3434@127.0.0.1/博士后’)
df['timing']=list(映射(lambda x:json.dumps(x),df['timing']))
df.to_sql('tfl_总线_pg6',引擎,如果存在='append',index=False)
时间。睡眠(120)

SQL数据库中的数据是否被覆盖?如果是这样,您可以尝试
If_exists='append'
您试图使用
YY67UTP
id访问的文件不包含任何内容info@K753如果存在,则class='append'完成!。thx.SQL数据库中的数据是否被覆盖?如果是这样,您可以尝试
If_exists='append'
您试图使用
YY67UTP
id访问的文件不包含任何内容info@K753如果存在,则class='append'完成!。thx.发生了这种情况(如果_exists='append')。非常感谢。我尝试了你的代码,但这是错误的:sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)@istanbul34这很奇怪,因为我保留了你关于
引擎
的代码。很好,它可以与
append
一起使用,但不会发生这种情况(如果_exists='append')。非常感谢。我尝试了你的代码,但这是错误的:sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)@istanbul34这很奇怪,因为我保留了你关于
引擎
的代码。很好,它可以与
append
一起使用