Метод SQLAlchemy _asdict () возвращает только один столбец

Вы можете сделать это несколькими способами в зависимости от того, как вы хотите данных. Если вы запросите его из родительской учетной записи, это будет чем-то вроде эффекта:

SELECT Id, Name, (Select ID, Name, Other_Parent__r.Name FROM Jira_Datas__r) FROM Account

или из соединения

SELECT Id, Name, Account.Name, Other_Parent__r.Name FROM Jira_Data__c
0
задан Trey 19 January 2019 в 17:35
поделиться

1 ответ

Вы не назвали столбец func.max(), поэтому нет имени для использования в качестве ключа в результирующем словаре. Столбцы функции агрегирования не называются автоматически даже при объединении одного столбца; то, что вы основали этот столбец на столбце time_end, здесь не имеет значения.

Дайте этому столбцу метку:

latest_projects = db.session.query(
    func.max(Project.time_end).label('time_end'),
    Project.analyst
).group_by(Project.analyst)

Демонстрация:

>>> latest_projects = db.session.query(
...     func.max(Project.time_end).label('time_end'),
...     Project.analyst
... ).group_by(Project.analyst)
>>> for row in latest_projects.all():
...     print (row._asdict())
...
{'time_end': datetime.datetime(2018, 11, 21, 14, 55), 'analyst': 'Bob'}
{'time_end': datetime.datetime(2016, 9, 6, 1, 35), 'analyst': 'Fred'}
{'time_end': datetime.datetime(2017, 10, 21, 8, 0), 'analyst': 'Jane'}
0
ответ дан Martijn Pieters 19 January 2019 в 17:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: