社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

sqlacalchemy:将pandas数据框中的新行添加到mysql表中,如果它们不在表中

lal • 6 年前 • 648 次点击  

我创建了一个表,插入从API获取的数据,并使用sqlacalchemy将其存储到熊猫数据帧中。 我需要每4小时查询一次API,以获取新的数据。 问题是,API不仅会返回新数据,还会返回已导入MySQL的旧数据。 如何将新数据导入mysql表

我从API中检索了数据,将数据存储到一个pandas对象中,创建了到mysql db的连接,并创建了一个新表。

import requests
import json
from pandas.io.json import json_normalize
myToken = 'xxx'
myUrl = 'somewebsite'
head = {'Authorization': 'token {}'.format(myToken)}
response = requests.get(myUrl, headers=head)
data=response.json()
#print(data.dumps(data, indent=4, sort_keys=True))
results=json_normalize(data['results'])
results.rename(columns={'datastream.name': 'datastream_name',                    
                        'datastream.url':'datastream_url',
                        'datastream.datastream_type_id':'datastream_id',
                        'start':'error_date'}, inplace=True)

results_final=pd.DataFrame([results.datastream_name,
                            results.datastream_url, 
                            results.error_date, 
                            results.datastream_id,
                            results.message,
                            results.type_label]).transpose()

from sqlalchemy import create_engine
from sqlalchemy import exc
engine = create_engine('mysql://usr:psw@ip/schema')
con = engine.connect()
results_final.to_sql(name='error',con=con,if_exists='replace')
con.close()

最终目标是插入到表中,只插入来自API的不存在的数据。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38471
 
648 次点击  
文章 [ 1 ]  |  最新文章 6 年前