Добавление inf как float в таблицу банка данных с sqlalchemy - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть фрейм данных, который выглядит следующим образом:

>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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...