|
@@ -39,10 +39,10 @@ class Mysql(object):
|
|
|
"""创建返回一个新的数据库session"""
|
|
"""创建返回一个新的数据库session"""
|
|
|
return self._DBSession()
|
|
return self._DBSession()
|
|
|
|
|
|
|
|
- def fetch_data_with_pagination(self, tablename, query_text, city_uuid, page=1, page_size=1000):
|
|
|
|
|
|
|
+ def fetch_data_with_pagination(self, tablename, query_text, field_name, city_uuid, page=1, page_size=1000):
|
|
|
"""分页查询数据,并根据 city_uuid 进行过滤"""
|
|
"""分页查询数据,并根据 city_uuid 进行过滤"""
|
|
|
offset = (page - 1) * page_size # 计算偏移量
|
|
offset = (page - 1) * page_size # 计算偏移量
|
|
|
- query = text(f"SELECT {query_text} FROM {tablename} WHERE city_uuid = :city_uuid LIMIT :limit OFFSET :offset")
|
|
|
|
|
|
|
+ query = text(f"SELECT {query_text} FROM {tablename} WHERE {field_name} = :city_uuid LIMIT :limit OFFSET :offset")
|
|
|
|
|
|
|
|
with self.create_session() as session:
|
|
with self.create_session() as session:
|
|
|
results = session.execute(query, {"city_uuid": city_uuid, "limit": page_size, "offset": offset}).fetchall()
|
|
results = session.execute(query, {"city_uuid": city_uuid, "limit": page_size, "offset": offset}).fetchall()
|
|
@@ -50,13 +50,13 @@ class Mysql(object):
|
|
|
|
|
|
|
|
return df
|
|
return df
|
|
|
|
|
|
|
|
- def load_data(self, tablename, query_text, city_uuid, page=1, page_size=1000):
|
|
|
|
|
|
|
+ def load_data(self, tablename, query_text, field_name, city_uuid, page=1, page_size=1000):
|
|
|
# 创建一个空的DataFrame用于存储所有数据
|
|
# 创建一个空的DataFrame用于存储所有数据
|
|
|
total_df = pd.DataFrame()
|
|
total_df = pd.DataFrame()
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
while True:
|
|
while True:
|
|
|
- df = self.fetch_data_with_pagination(tablename, query_text, city_uuid, page, page_size)
|
|
|
|
|
|
|
+ df = self.fetch_data_with_pagination(tablename, query_text, field_name, city_uuid, page, page_size)
|
|
|
if df.empty:
|
|
if df.empty:
|
|
|
break
|
|
break
|
|
|
|
|
|