Как преобразовать DataFrame панд в JSON для модели Django? - PullRequest
0 голосов
/ 01 июля 2018

У меня есть Pandas DataFrame ниже, и мне нужно преобразовать его в формат json с df.columns, обернутыми в имя модели Django и имя поля «fields». Ниже приведен пример того, как должен выглядеть json. Как мне это сделать?

ДФ:

+-----------------+---------+------+
|     Artist      |  Title  | Year |
+-----------------+---------+------+
| Michael Jackson | Beat it | 1988 |
| Britney Spears  | Lucky   | 2012 |
| Justin Bieber   | Baby    | 2006 |
+-----------------+---------+------+

Вывод файла Json:

[
  {
    "model": "profiles.track",
    "fields": {
      "artist": "Michael Jackson",
      "title": "Beat it",
      "year": "1988",
    }
  },
  {
    "model": "profiles.track",
    "fields": {
      "artist": "Britney Spears",
      "title": "Lucky",
      "year": "2012",
    }
  },
  {
    "model": "profiles.track",
    "fields": {
      "artist": "Justin Bieber",
      "title": "Baby",
      "year": "2006",
    }
  }
]

1 Ответ

0 голосов
/ 01 июля 2018

Мы можем преобразовать фрейм данных df в список словарей с помощью:

df_dicts = df.T.to_dict().values()

Но, конечно, это не дает нам полностью требуемый формат, и при этом это не JSON-объект. Но мы можем использовать это как основу для расширения. Например, мы можем заключить каждый словарь в другой словарь, выполнив команду map ping:

result = list(map(lambda x: {'model': 'profiles.track', 'fields': x}, df_dicts))

Наконец, мы можем создать BLOB-объект JSON с помощью:

import json

json_blob = json.dumps(result)

Это создаст строку, которая является дампом JSON result. Мы можем, например, напечатать его с помощью:

print(json_blob)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...