#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 Уверен, что вы правы! Ответ был изменен.