=========================================================================
2025-08-21 16:25:19 Thu START TASK.01 future_1d future_rank
=========================================================================
2025-08-21 16:25:21,872 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-21 16:25:21,956 - future_1d - INFO - future_rank date = 2025-08-13
2025-08-21 16:25:22,170 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CFFEX) done
2025-08-21 16:25:22,248 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='INE) done
2025-08-21 16:25:22,558 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CZCE) done
2025-08-21 16:25:22,630 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='DCE) done
2025-08-21 16:25:22,984 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='SHFE) done
2025-08-21 16:25:23,060 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='GFEX) done
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 467")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/project/future_1d/future_rank.py", line 8, in
client.save_future_rank(check=True, check_last=7)
File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
raise err
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
return meth(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 467")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '瑞达期货(代客)', 'vol': 240.0, 'vol_chg': -25.0, 'long_hld': 117.0, 'long_chg': 19.0, 'short_hld': 109.0, 'short_chg': 15.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '瑞银期货(代客)', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 180.0, 'short_chg': 0.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '申银万国(代客)', 'vol': 213.0, 'vol_chg': -6.0, 'long_hld': 81.0, 'long_chg': -6.0, 'short_hld': 310.0, 'short_chg': 55.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '金元期货(代客)', 'vol': 430.0, 'vol_chg': 34.0, 'long_hld': 82.0, 'long_chg': -8.0, 'short_hld': None, 'short_chg': None, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '银河期货(代客)', 'vol': 739.0, 'vol_chg': 109.0, 'long_hld': 323.0, 'long_chg': -17.0, 'short_hld': 354.0, 'short_chg': -398.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '东方财富(代客)', 'vol': 1200.0, 'vol_chg': 57.0, 'long_hld': None, 'long_chg': None, 'short_hld': None, 'short_chg': None, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '东证期货(代客)', 'vol': 4026.0, 'vol_chg': 375.0, 'long_hld': 2150.0, 'long_chg': 212.0, 'short_hld': 3077.0, 'short_chg': 356.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '中信建投(代客)', 'vol': 1581.0, 'vol_chg': 33.0, 'long_hld': 1399.0, 'long_chg': 150.0, 'short_hld': 492.0, 'short_chg': 79.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)} ... displaying 10 of 1000 total bound parameter sets ... {'date': '2025-08-13', 'symbol': 'AO2510', 'broker': '招商期货', 'vol': 2033.0, 'vol_chg': -1025.0, 'long_hld': 6434.0, 'long_chg': -4.0, 'short_hld': 5713.0, 'short_chg': -47.0, 'exchange': 'SHFE', 'variety': 'AO', 'comd': 'ao', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}, {'date': '2025-08-13', 'symbol': 'AO2510', 'broker': '方正中期', 'vol': 1708.0, 'vol_chg': -568.0, 'long_hld': 1393.0, 'long_chg': 599.0, 'short_hld': 1266.0, 'short_chg': 379.0, 'exchange': 'SHFE', 'variety': 'AO', 'comd': 'ao', 'created_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 400952), 'updated_at': datetime.datetime(2025, 8, 21, 16, 25, 23, 401396)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-21 16:26:28 Thu START TASK.01 future_1d future_rank
=========================================================================
2025-08-21 16:26:30,132 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-21 16:26:30,215 - future_1d - INFO - future_rank date = 2025-08-13
2025-08-21 16:26:30,309 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='DCE) done
2025-08-21 16:26:30,374 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='INE) done
2025-08-21 16:26:30,996 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='SHFE) done
2025-08-21 16:26:31,243 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CFFEX) done
2025-08-21 16:26:31,693 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CZCE) done
2025-08-21 16:26:31,777 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='GFEX) done
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/project/future_1d/future_rank.py", line 8, in
client.save_future_rank(check=True, check_last=7)
File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
raise err
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
return meth(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-13', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 4696.0, 'vol_chg': 2504.0, 'long_hld': 10202.0, 'long_chg': 34.0, 'short_hld': 10202.0, 'short_chg': 34.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}, {'date': '2025-08-13', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 148.0, 'long_chg': 3.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 86.0, 'vol_chg': 40.0, 'long_hld': None, 'long_chg': None, 'short_hld': 191.0, 'short_chg': 22.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 151.0, 'vol_chg': 89.0, 'long_hld': 225.0, 'long_chg': 25.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 77.0, 'long_hld': 841.0, 'long_chg': -40.0, 'short_hld': 583.0, 'short_chg': -2.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': 237.0, 'vol_chg': 217.0, 'long_hld': None, 'long_chg': None, 'short_hld': 252.0, 'short_chg': -197.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 143.0, 'long_hld': 761.0, 'long_chg': -7.0, 'short_hld': 656.0, 'short_chg': -4.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)} ... displaying 10 of 1000 total bound parameter sets ... {'date': '2025-08-13', 'symbol': 'CU2508', 'broker': '五矿期货', 'vol': 1340.0, 'vol_chg': 165.0, 'long_hld': None, 'long_chg': None, 'short_hld': 1335.0, 'short_chg': -910.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}, {'date': '2025-08-13', 'symbol': 'CU2508', 'broker': '光大期货', 'vol': 870.0, 'vol_chg': 200.0, 'long_hld': 180.0, 'long_chg': -235.0, 'short_hld': 320.0, 'short_chg': -255.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121037), 'updated_at': datetime.datetime(2025, 8, 21, 16, 26, 32, 121505)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-21 16:27:28 Thu START TASK.01 future_1d future_rank
=========================================================================
2025-08-21 16:27:30,571 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-21 16:27:30,652 - future_1d - INFO - future_rank date = 2025-08-13
2025-08-21 16:27:30,742 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='GFEX) done
2025-08-21 16:27:30,818 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='DCE) done
2025-08-21 16:27:31,082 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='SHFE) done
2025-08-21 16:27:31,224 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CFFEX) done
2025-08-21 16:27:35,017 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CZCE) done
2025-08-21 16:27:35,126 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='INE) done
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/project/future_1d/future_rank.py", line 8, in
client.save_future_rank(check=True, check_last=7)
File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
raise err
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
return meth(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-13', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 4696.0, 'vol_chg': 2504.0, 'long_hld': 10202.0, 'long_chg': 34.0, 'short_hld': 10202.0, 'short_chg': 34.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}, {'date': '2025-08-13', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 148.0, 'long_chg': 3.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 86.0, 'vol_chg': 40.0, 'long_hld': None, 'long_chg': None, 'short_hld': 191.0, 'short_chg': 22.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 151.0, 'vol_chg': 89.0, 'long_hld': 225.0, 'long_chg': 25.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 77.0, 'long_hld': 841.0, 'long_chg': -40.0, 'short_hld': 583.0, 'short_chg': -2.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': 237.0, 'vol_chg': 217.0, 'long_hld': None, 'long_chg': None, 'short_hld': 252.0, 'short_chg': -197.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 143.0, 'long_hld': 761.0, 'long_chg': -7.0, 'short_hld': 656.0, 'short_chg': -4.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)} ... displaying 10 of 1000 total bound parameter sets ... {'date': '2025-08-13', 'symbol': 'CU2508', 'broker': '五矿期货', 'vol': 1340.0, 'vol_chg': 165.0, 'long_hld': None, 'long_chg': None, 'short_hld': 1335.0, 'short_chg': -910.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}, {'date': '2025-08-13', 'symbol': 'CU2508', 'broker': '光大期货', 'vol': 870.0, 'vol_chg': 200.0, 'long_hld': 180.0, 'long_chg': -235.0, 'short_hld': 320.0, 'short_chg': -255.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 481726), 'updated_at': datetime.datetime(2025, 8, 21, 16, 27, 35, 482157)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-21 16:28:18 Thu START TASK.01 future_1d future_rank
=========================================================================
2025-08-21 16:28:20,717 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-21 16:28:20,801 - future_1d - INFO - future_rank date = 2025-08-13
2025-08-21 16:28:21,008 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='GFEX) done
2025-08-21 16:28:21,088 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='DCE) done
2025-08-21 16:28:21,256 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CFFEX) done
2025-08-21 16:28:23,136 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='SHFE) done
2025-08-21 16:28:23,204 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='INE) done
2025-08-21 16:28:25,004 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CZCE) done
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 467")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/project/future_1d/future_rank.py", line 8, in
client.save_future_rank(check=True, check_last=7)
File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
raise err
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
return meth(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 467")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '瑞达期货(代客)', 'vol': 240.0, 'vol_chg': -25.0, 'long_hld': 117.0, 'long_chg': 19.0, 'short_hld': 109.0, 'short_chg': 15.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '瑞银期货(代客)', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 180.0, 'short_chg': 0.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '申银万国(代客)', 'vol': 213.0, 'vol_chg': -6.0, 'long_hld': 81.0, 'long_chg': -6.0, 'short_hld': 310.0, 'short_chg': 55.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '金元期货(代客)', 'vol': 430.0, 'vol_chg': 34.0, 'long_hld': 82.0, 'long_chg': -8.0, 'short_hld': None, 'short_chg': None, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '银河期货(代客)', 'vol': 739.0, 'vol_chg': 109.0, 'long_hld': 323.0, 'long_chg': -17.0, 'short_hld': 354.0, 'short_chg': -398.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '东方财富(代客)', 'vol': 1200.0, 'vol_chg': 57.0, 'long_hld': None, 'long_chg': None, 'short_hld': None, 'short_chg': None, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '东证期货(代客)', 'vol': 4026.0, 'vol_chg': 375.0, 'long_hld': 2150.0, 'long_chg': 212.0, 'short_hld': 3077.0, 'short_chg': 356.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '中信建投(代客)', 'vol': 1581.0, 'vol_chg': 33.0, 'long_hld': 1399.0, 'long_chg': 150.0, 'short_hld': 492.0, 'short_chg': 79.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)} ... displaying 10 of 1000 total bound parameter sets ... {'date': '2025-08-13', 'symbol': 'AO2510', 'broker': '招商期货', 'vol': 2033.0, 'vol_chg': -1025.0, 'long_hld': 6434.0, 'long_chg': -4.0, 'short_hld': 5713.0, 'short_chg': -47.0, 'exchange': 'SHFE', 'variety': 'AO', 'comd': 'ao', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}, {'date': '2025-08-13', 'symbol': 'AO2510', 'broker': '方正中期', 'vol': 1708.0, 'vol_chg': -568.0, 'long_hld': 1393.0, 'long_chg': 599.0, 'short_hld': 1266.0, 'short_chg': 379.0, 'exchange': 'SHFE', 'variety': 'AO', 'comd': 'ao', 'created_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 350837), 'updated_at': datetime.datetime(2025, 8, 21, 16, 28, 25, 351291)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-21 18:25:36 Thu START TASK.01 future_1d future_rank
=========================================================================
2025-08-21 18:25:38,485 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-21 18:25:38,570 - future_1d - INFO - future_rank date = 2025-08-13
2025-08-21 18:25:40,223 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CZCE) done
2025-08-21 18:25:42,007 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='SHFE) done
2025-08-21 18:25:42,079 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='DCE) done
2025-08-21 18:25:42,152 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='GFEX) done
2025-08-21 18:25:42,219 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='INE) done
2025-08-21 18:25:43,006 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CFFEX) done
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/project/future_1d/future_rank.py", line 8, in
client.save_future_rank(check=True, check_last=7)
File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
raise err
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
return meth(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-13', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 4696.0, 'vol_chg': 2504.0, 'long_hld': 10202.0, 'long_chg': 34.0, 'short_hld': 10202.0, 'short_chg': 34.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}, {'date': '2025-08-13', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 148.0, 'long_chg': 3.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 86.0, 'vol_chg': 40.0, 'long_hld': None, 'long_chg': None, 'short_hld': 191.0, 'short_chg': 22.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 151.0, 'vol_chg': 89.0, 'long_hld': 225.0, 'long_chg': 25.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 77.0, 'long_hld': 841.0, 'long_chg': -40.0, 'short_hld': 583.0, 'short_chg': -2.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': 237.0, 'vol_chg': 217.0, 'long_hld': None, 'long_chg': None, 'short_hld': 252.0, 'short_chg': -197.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 143.0, 'long_hld': 761.0, 'long_chg': -7.0, 'short_hld': 656.0, 'short_chg': -4.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)} ... displaying 10 of 1000 total bound parameter sets ... {'date': '2025-08-13', 'symbol': 'CU2508', 'broker': '五矿期货', 'vol': 1340.0, 'vol_chg': 165.0, 'long_hld': None, 'long_chg': None, 'short_hld': 1335.0, 'short_chg': -910.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}, {'date': '2025-08-13', 'symbol': 'CU2508', 'broker': '光大期货', 'vol': 870.0, 'vol_chg': 200.0, 'long_hld': 180.0, 'long_chg': -235.0, 'short_hld': 320.0, 'short_chg': -255.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349540), 'updated_at': datetime.datetime(2025, 8, 21, 18, 25, 43, 349976)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-21 18:26:48 Thu START TASK.01 future_1d future_rank
=========================================================================
2025-08-21 18:26:50,035 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-21 18:26:50,121 - future_1d - INFO - future_rank date = 2025-08-13
2025-08-21 18:26:50,762 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CFFEX) done
2025-08-21 18:26:50,841 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='DCE) done
2025-08-21 18:26:52,972 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CZCE) done
2025-08-21 18:26:54,048 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='GFEX) done
2025-08-21 18:26:54,116 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='INE) done
2025-08-21 18:26:56,326 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='SHFE) done
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 467")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/project/future_1d/future_rank.py", line 8, in
client.save_future_rank(check=True, check_last=7)
File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
raise err
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
return meth(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 467")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '瑞达期货(代客)', 'vol': 240.0, 'vol_chg': -25.0, 'long_hld': 117.0, 'long_chg': 19.0, 'short_hld': 109.0, 'short_chg': 15.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '瑞银期货(代客)', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 180.0, 'short_chg': 0.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '申银万国(代客)', 'vol': 213.0, 'vol_chg': -6.0, 'long_hld': 81.0, 'long_chg': -6.0, 'short_hld': 310.0, 'short_chg': 55.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '金元期货(代客)', 'vol': 430.0, 'vol_chg': 34.0, 'long_hld': 82.0, 'long_chg': -8.0, 'short_hld': None, 'short_chg': None, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '银河期货(代客)', 'vol': 739.0, 'vol_chg': 109.0, 'long_hld': 323.0, 'long_chg': -17.0, 'short_hld': 354.0, 'short_chg': -398.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '东方财富(代客)', 'vol': 1200.0, 'vol_chg': 57.0, 'long_hld': None, 'long_chg': None, 'short_hld': None, 'short_chg': None, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '东证期货(代客)', 'vol': 4026.0, 'vol_chg': 375.0, 'long_hld': 2150.0, 'long_chg': 212.0, 'short_hld': 3077.0, 'short_chg': 356.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '中信建投(代客)', 'vol': 1581.0, 'vol_chg': 33.0, 'long_hld': 1399.0, 'long_chg': 150.0, 'short_hld': 492.0, 'short_chg': 79.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)} ... displaying 10 of 1000 total bound parameter sets ... {'date': '2025-08-13', 'symbol': 'AO2510', 'broker': '招商期货', 'vol': 2033.0, 'vol_chg': -1025.0, 'long_hld': 6434.0, 'long_chg': -4.0, 'short_hld': 5713.0, 'short_chg': -47.0, 'exchange': 'SHFE', 'variety': 'AO', 'comd': 'ao', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}, {'date': '2025-08-13', 'symbol': 'AO2510', 'broker': '方正中期', 'vol': 1708.0, 'vol_chg': -568.0, 'long_hld': 1393.0, 'long_chg': 599.0, 'short_hld': 1266.0, 'short_chg': 379.0, 'exchange': 'SHFE', 'variety': 'AO', 'comd': 'ao', 'created_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 677673), 'updated_at': datetime.datetime(2025, 8, 21, 18, 26, 56, 678118)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-21 18:27:46 Thu START TASK.01 future_1d future_rank
=========================================================================
2025-08-21 18:27:48,779 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-21 18:27:48,863 - future_1d - INFO - future_rank date = 2025-08-13
2025-08-21 18:27:48,948 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='GFEX) done
2025-08-21 18:27:51,435 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CZCE) done
2025-08-21 18:27:52,319 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CFFEX) done
2025-08-21 18:27:52,393 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='DCE) done
2025-08-21 18:27:52,488 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='INE) done
2025-08-21 18:27:54,571 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='SHFE) done
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 467")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/project/future_1d/future_rank.py", line 8, in
client.save_future_rank(check=True, check_last=7)
File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
raise err
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
return meth(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 467")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '瑞达期货(代客)', 'vol': 240.0, 'vol_chg': -25.0, 'long_hld': 117.0, 'long_chg': 19.0, 'short_hld': 109.0, 'short_chg': 15.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '瑞银期货(代客)', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 180.0, 'short_chg': 0.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '申银万国(代客)', 'vol': 213.0, 'vol_chg': -6.0, 'long_hld': 81.0, 'long_chg': -6.0, 'short_hld': 310.0, 'short_chg': 55.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '金元期货(代客)', 'vol': 430.0, 'vol_chg': 34.0, 'long_hld': 82.0, 'long_chg': -8.0, 'short_hld': None, 'short_chg': None, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}, {'date': '2025-08-13', 'symbol': 'IH2508', 'broker': '银河期货(代客)', 'vol': 739.0, 'vol_chg': 109.0, 'long_hld': 323.0, 'long_chg': -17.0, 'short_hld': 354.0, 'short_chg': -398.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '东方财富(代客)', 'vol': 1200.0, 'vol_chg': 57.0, 'long_hld': None, 'long_chg': None, 'short_hld': None, 'short_chg': None, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '东证期货(代客)', 'vol': 4026.0, 'vol_chg': 375.0, 'long_hld': 2150.0, 'long_chg': 212.0, 'short_hld': 3077.0, 'short_chg': 356.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}, {'date': '2025-08-13', 'symbol': 'IH2509', 'broker': '中信建投(代客)', 'vol': 1581.0, 'vol_chg': 33.0, 'long_hld': 1399.0, 'long_chg': 150.0, 'short_hld': 492.0, 'short_chg': 79.0, 'exchange': 'CFFEX', 'variety': 'IH', 'comd': 'IH', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)} ... displaying 10 of 1000 total bound parameter sets ... {'date': '2025-08-13', 'symbol': 'AO2510', 'broker': '招商期货', 'vol': 2033.0, 'vol_chg': -1025.0, 'long_hld': 6434.0, 'long_chg': -4.0, 'short_hld': 5713.0, 'short_chg': -47.0, 'exchange': 'SHFE', 'variety': 'AO', 'comd': 'ao', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}, {'date': '2025-08-13', 'symbol': 'AO2510', 'broker': '方正中期', 'vol': 1708.0, 'vol_chg': -568.0, 'long_hld': 1393.0, 'long_chg': 599.0, 'short_hld': 1266.0, 'short_chg': 379.0, 'exchange': 'SHFE', 'variety': 'AO', 'comd': 'ao', 'created_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943389), 'updated_at': datetime.datetime(2025, 8, 21, 18, 27, 54, 943845)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-21 18:28:57 Thu START TASK.01 future_1d future_rank
=========================================================================
2025-08-21 18:28:59,714 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-21 18:28:59,799 - future_1d - INFO - future_rank date = 2025-08-13
2025-08-21 18:29:04,222 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='SHFE) done
2025-08-21 18:29:04,470 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CFFEX) done
2025-08-21 18:29:04,542 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='DCE) done
2025-08-21 18:29:04,804 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='GFEX) done
2025-08-21 18:29:05,892 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='INE) done
2025-08-21 18:29:11,002 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-13',exchange='CZCE) done
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/project/future_1d/future_rank.py", line 8, in
client.save_future_rank(check=True, check_last=7)
File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
raise err
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
return meth(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
self.dialect.do_executemany(
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
rowcount = cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
return self._do_execute_many(
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
rows += self.execute(sql + postfix)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
result = self._query(query)
File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
conn.query(q)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
result.read()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-13', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 4696.0, 'vol_chg': 2504.0, 'long_hld': 10202.0, 'long_chg': 34.0, 'short_hld': 10202.0, 'short_chg': 34.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}, {'date': '2025-08-13', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 148.0, 'long_chg': 3.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 86.0, 'vol_chg': 40.0, 'long_hld': None, 'long_chg': None, 'short_hld': 191.0, 'short_chg': 22.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 151.0, 'vol_chg': 89.0, 'long_hld': 225.0, 'long_chg': 25.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 77.0, 'long_hld': 841.0, 'long_chg': -40.0, 'short_hld': 583.0, 'short_chg': -2.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': 237.0, 'vol_chg': 217.0, 'long_hld': None, 'long_chg': None, 'short_hld': 252.0, 'short_chg': -197.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}, {'date': '2025-08-13', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 143.0, 'long_hld': 761.0, 'long_chg': -7.0, 'short_hld': 656.0, 'short_chg': -4.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)} ... displaying 10 of 1000 total bound parameter sets ... {'date': '2025-08-13', 'symbol': 'CU2508', 'broker': '五矿期货', 'vol': 1340.0, 'vol_chg': 165.0, 'long_hld': None, 'long_chg': None, 'short_hld': 1335.0, 'short_chg': -910.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}, {'date': '2025-08-13', 'symbol': 'CU2508', 'broker': '光大期货', 'vol': 870.0, 'vol_chg': 200.0, 'long_hld': 180.0, 'long_chg': -235.0, 'short_hld': 320.0, 'short_chg': -255.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347270), 'updated_at': datetime.datetime(2025, 8, 21, 18, 29, 11, 347745)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)