Pandas Read_sql
с параметризованными sql Queries
] функция pandas.read_sql
является мощным инструментом для извлечения данных из баз данных. При работе с двигателями SQLALCHEMY эффективное передача параметров к вашим запросам SQL имеет решающее значение. Это руководство демонстрирует два общих подхода: позиционные и названные параметры.
Метод 1: Позиционные параметры
] Этот метод использует список или кортеж для подачи параметров для вашего запроса SQL. Заполнители в операторе SQL (%s
) заменяются последовательно элементами в списке параметров.
Пример:
import pandas as pd
from datetime import datetime
# ... (database connection setup using SQLAlchemy) ...
query = ('SELECT "Timestamp", "Value" FROM "MyTable" '
'WHERE "Timestamp" BETWEEN %s AND %s')
params = [datetime(2014, 6, 24, 16, 0), datetime(2014, 6, 24, 17, 0)]
df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])
]
Метод 2: Именованные параметры
Именованные параметры предлагают лучшую читаемость и обслуживание. Тем не менее, поддерживаемый синтаксис зависит от вашего драйвера базы данных. С SQLALCHEMY и PSYCOPG2, %(имя) s
необходим.
Пример:
import pandas as pd
from datetime import datetime
# ... (database connection setup using SQLAlchemy) ...
query = ('SELECT "Timestamp", "Value" FROM "MyTable" '
'WHERE "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s')
params = {"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)}
df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])
]
Важное примечание: всегда проверяйте документацию драйвера базы данных, чтобы подтвердить правильный синтаксис параметров. Использование неправильного синтаксиса приведет к ошибкам запроса. Это гарантирует, что ваши параметризованные запросы выполняются правильно и надежно.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3