Как распаковать результат Django RawQuerySet в датафрейм pandas

Я использую необработанный SQL запрос для получения объектов из таблицы Postgresql:

data_result = Search.objects.raw(search_sql)

Проблема в том, что когда я пытаюсь поместить его в кадр данных Pandas, я получаю кадр данных в виде одного столбца, заполненного объектами, вместо того, чтобы распаковывать их для каждого свойства:

0  Search object (167157)
1  Search object (167159)
2  Search object (167160)
3  Search object (167163)
4  Search object (167164)
5  Search object (167165)
6  Search object (167166)
7  Search object (167169)
8  Search object (167170)
9  Search object (167174)

Единственный способ, которым мне удалось добиться этого, это обращение к свойству dict и последующее удаление свойства "_state", но это не кажется правильным способом сделать это:

data_result = pd.DataFrame([{key: value for key, value in row.__dict__.items() if key != '_state'} for row in data_result])

     id        number     date
0    167157    180981-02  2022-02-04
1    167159    180983-01  2022-01-31
2    167160    180982-01  2022-01-31
3    167163    180990-01  2022-02-06
4    167164    180992-01  2022-01-24
5    167165    180998-01  2022-01-23
6    167166    180993-01  2022-02-08
7    167169    181001-01  2022-02-09
8    167170    181002-01  2022-02-11
9    167174    181026-02  2022-02-09

Я попробовал создать сериализатор, чтобы посмотреть, приходит ли он как словарь, но мне не повезло. Если я попытаюсь отправить параметр columns в Dataframe, то получу следующую ошибку: "Произошло неизвестное исключение. Форма переданных значений - (10, 1), индексы подразумевают (10, 3)"

Как мне создать pandas dataframe, который получает RawQuerySet и создает нужные столбцы?

Вернуться на верх