У меня есть фрейм данных, который выглядит следующим образом:
>data[i]
Property value
0 CO2 limit inf
Поэтому обычно значение получает числа с плавающей запятой, но на этот раз вместо чисел я устанавливаю его как inf
, что переводится как float('inf')
в моей модели.
Я хотел бы добавить этот кадр данных в банк данных с использованием sqlalchemy.
Я создал таблицу в банке данных с помощью:
table = sa.Table(
table_name,
metadata,
sa.Column('id', sa.Integer, primary_key=True, autoincrement=True,
nullable=False),
sa.Column('Property', sa.String()),
sa.Column('value', sa.Float()),
schema=schema_name)
ИЯ добавляю значения через:
table.create()
data[i].to_sql('ubbb_'+i, engine, schema='model_draft',
if_exists='append', index=None)
В этот момент я получаю сообщение об ошибке, потому что я пытаюсь добавить inf
в столбец, который определен как sa.Float
, как я могу это исправить?
ОШИБКА:
Traceback (most recent call last):
File "mimo.py", line 207, in <module>
a = conn.send_df(input_file_urbs)
File "/home/local/RL-INSTITUT/okan.akca/Schreibtisch/urbs-oemof/connection_oep/connection.py", line 63, in send_df
if not engine.dialect.has_table(engine, 'ubbb_'+i, 'model_draft'):
File "/usr/local/lib/python3.6/dist-packages/pandas/core/generic.py", line 2130, in to_sql
dtype=dtype)
File "/usr/local/lib/python3.6/dist-packages/pandas/io/sql.py", line 450, in to_sql
chunksize=chunksize, dtype=dtype)
File "/usr/local/lib/python3.6/dist-packages/pandas/io/sql.py", line 1127, in to_sql
table.insert(chunksize)
File "/usr/local/lib/python3.6/dist-packages/pandas/io/sql.py", line 641, in insert
self._execute_insert(conn, keys, chunk_iter)
File "/usr/local/lib/python3.6/dist-packages/pandas/io/sql.py", line 616, in _execute_insert
conn.execute(self.insert_statement(), data)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 948, in execute
return meth(self, multiparams, params)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement
compiled_sql, distilled_params
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
context)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1416, in _handle_dbapi_exception
util.reraise(*exc_info)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 249, in reraise
raise value
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1170, in _execute_context
context)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/dialects/postgresql/psycopg2.py", line 683, in do_executemany
cursor.executemany(statement, parameters)
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 303, in executemany
val = self.execute(query, p)
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 295, in execute
requires_connection_id=requires_connection_id)
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 312, in __execute_by_post
requires_connection_id=requires_connection_id)
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 212, in post
raise ConnectionException(json_response['reason'] if 'reason' in json_response else 'No reason returned')
oedialect.engine.ConnectionException: No reason returned
ERROR:sqlalchemy.pool.QueuePool:Exception during reset or similar
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool.py", line 709, in _finalize_fairy
fairy._reset(pool)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool.py", line 880, in _reset
pool._dialect.do_rollback(self)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 459, in do_rollback
dbapi_connection.rollback()
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 59, in rollback
requires_connection_id=True)
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 204, in post
headers=header, )
File "/usr/lib/python3/dist-packages/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 520, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 630, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 440, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
self._validate_conn(conn)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 852, in _validate_conn
conn.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 301, in connect
is_time_off = datetime.date.today() < RECENT_DATE
ImportError: sys.meta_path is None, Python is likely shutting down
ERROR:sqlalchemy.pool.QueuePool:Exception closing connection <oedialect.engine.OEConnection object at 0x7fb3cd220da0>
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool.py", line 709, in _finalize_fairy
fairy._reset(pool)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool.py", line 880, in _reset
pool._dialect.do_rollback(self)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 459, in do_rollback
dbapi_connection.rollback()
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 59, in rollback
requires_connection_id=True)
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 204, in post
headers=header, )
File "/usr/lib/python3/dist-packages/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 520, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 630, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 440, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
self._validate_conn(conn)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 852, in _validate_conn
conn.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 301, in connect
is_time_off = datetime.date.today() < RECENT_DATE
ImportError: sys.meta_path is None, Python is likely shutting down
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool.py", line 314, in _close_connection
self._dialect.do_close(connection)
File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 465, in do_close
dbapi_connection.close()
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 50, in close
requires_connection_id=True)
File "/usr/local/lib/python3.6/dist-packages/oedialect/engine.py", line 204, in post
headers=header, )
File "/usr/lib/python3/dist-packages/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 520, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 630, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 440, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
self._validate_conn(conn)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 852, in _validate_conn
conn.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 301, in connect
is_time_off = datetime.date.today() < RECENT_DATE
ImportError: sys.meta_path is None, Python is likely shutting down