Sqlalchemy select AttributeError: объект «dict» не имеет атрибутаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Sqlalchemy select AttributeError: объект «dict» не имеет атрибута

Сообщение Anonymous »

Я создаю приложение fastapi + sqlalchemy
Мой код
sql.py
form sqlalchemy import Table, String, BigInteger, MetaData

metadata = MetaData()

custom_datasets = Table(
"custom_datasets",
metadata,
Column("project_id", String(500), primary_key=True),
Column("id", BigInteger, primary_key=True),
Column("name", String(500), unique=True),
Column("path", String(500), unique=True),
Column("feature_service", String(500), nullable=False),
Column("last_updated_timestamp", BigInteger, nullable=False),
)


main.py
import os
from sqlalchemy.orm import Session
from sqlalchemy import select

def get_db():
if os.getenv("REGISTRY_CONNECTION_STRING"):
db = SessionLocal()
yield db
yield None

@app.get("/datasets/")
def get_project_registry(body: Dict[str, Any], db: Session = Depends(get_db)):
print("XXX_ ", custom_datasets.c) # XXX_ ImmutableColumnCollection(custom_datasets.project_id, custom_datasets.id,
stmt = select(custom_datasets).where(
custom_datasets.c.project_id in body.project_ids
)
res = db.execute().all()
return res


У меня ошибка
python3.8/site-packages/feast/feature_server.py", line 469, in get_project_registry
custom_datasets.c.project_id in body.project_ids
AttributeError: 'dict' object has no attribute 'project_ids'

Как исправить ошибку?

Обновление:
Фильтрация не работает по запросу
GET http://127.0.0.1:8009/datasets
{
"project_ids": ["proj_id1"]
}

Таблица выглядит следующим образом:
testdb=# SELECT * FROM custom_datasets;
project_id | id | name | path | feature_service | last_updated_timestamp
------------+----+-------+-----------+-----------------+------------------------
proj_id1 | 1 | name1 | path/path | service_name | 1

Обновленный код
@app.get("/datasets/")
def get_project_registry(body: Dict[str, Any], db: Session = Depends(get_db)):
print("XXX_ ", body['project_ids']) # prints XXX_ ['proj_id1']
stmt = select(custom_datasets).where(
custom_datasets.c.project_id in body['project_ids']
)
#stmt = select(custom_datasets)
res = db.execute(stmt).all()
return res


Подробнее здесь: https://stackoverflow.com/questions/791 ... -attribute
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Sqlalchemy select AttributeError: объект «dict» не имеет атрибута
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Attributeerror: модуль «select» не имеет атрибута 'select' asmincio asyncio
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Attributeerror: модуль «select» не имеет атрибута 'select' asmincio asyncio
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • AttributeError: объект «dict» не имеет атрибута «mask_padding» «model = Tacotron2(hparams)»
    Anonymous » » в форуме Python
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Проблема с атрибутом флажка Tkinter. AttributeError: объект IntVar не имеет атрибута select.
    Anonymous » » в форуме Python
    0 Ответы
    101 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»