ImportError: использование строки URI без установленной sqlalchemy при выполнении функции регулярного выражения в pandas SQL API с помощью SQLLite

#python #regex #pandas #sqlite #dataframe

#python #регулярное выражение #pandas #sqlite #фрейм данных

Вопрос:

Я пытаюсь выполнить функцию РЕГУЛЯРНОГО ВЫРАЖЕНИЯ SQLLite с помощью Pandas SQL API, но получаю ошибку

«ImportError: использование строки URI без установленной sqlalchemy».охон

Код python выглядит следующим образом :

 import pandas as pd
import csv, sqlite3
import json, re

conn = sqlite3.connect(":memory:")

print(sqlite3.version)
print(sqlite3.sqlite_version)


def regexp(y, x, search=re.search):
    return 1 if search(y, x) else 0


conn.create_function("regexp", 2, regexp)
df = pd.read_json("idxData1.json", lines=True)
df.to_sql("temp_log", conn, if_exists="append", index=False)

rsDf = pd.read_sql_query(
    conn, """SELECT * from temp_log WHERE user REGEXP 'ph'""", chunksize=20,
)

for gendf in rsDf:
    for item in gendf.to_dict(orient="records"):
        print(item)
  

Ошибка, которую она выдает,

    raise ImportError("Using URI string without sqlalchemy installed.")
ImportError: Using URI string without sqlalchemy installed.
  

Кто-нибудь может подсказать, чего мне не хватает. Пожалуйста, не подумайте, что у меня есть особые требования к использованию Pandas SQL API.

Ответ №1:

Вы получаете эту ошибку, потому что вы указали параметры read_sql_query в неправильном порядке. В частности, первым параметром должен быть запрос, а соединение идет вторым, вот так:

 rsDf = pd.read_sql_query(
    """SELECT * from temp_log WHERE user REGEXP 'ph'""", conn, chunksize=20,
)
  

Комментарии:

1. Да, для меня это было причиной!

Ответ №2:

Вы можете просто запустить следующую команду и установить SQLAlchemy :

 pip3 install SQLAlchemy
  

Как сказал @Xbel:

Обратите внимание, что ошибка может возникнуть из-за неправильного порядка параметров, например, при добавлении сначала соединения, а затем инструкции SQL. Похоже, так оно и было. Обратите внимание, что установка SQLAlchemy не помогает.

Комментарии:

1. Все еще происходит даже с установленным этим.

2. Обратите внимание, что ошибка может возникнуть из-за неправильного порядка параметров, например, при добавлении сначала соединения, а затем инструкции SQL. Похоже, так оно и было. Обратите внимание, что установка SQLAlchemy не помогает.

3. @Xbel Уверен, что вы правы! Ответ был изменен.