Как динамически создать словарь с массивом внутри него независимо от длины переменных, необходимых в массиве из фрейма данных? - PullRequest
0 голосов
/ 05 октября 2019

У меня есть кадр данных, который выглядит следующим образом:

NAME           ID
one             1
two             2
three           3

Мне нужно создать массив, который соответствует этому формату, где каждое значение в NAME присваивается name в массиве. Каждая запись в кадре данных нуждается в собственном словаре:

payload = { "tags": [ { "name": "one", "status": "active" },  { "name": "two", "status": "active" } ,  { "name": "three", "status": "active" }] }

Я также хочу динамически масштабировать словарь независимо от количества записей в кадре данных. Если у меня есть одна запись в df, то мне нужен только один массив.

1 Ответ

1 голос
/ 05 октября 2019

Я слегка отредактировал этот ответ , который отлично подходит для вашего случая (если я правильно понял)

>>> def gen_name(name):
...   return {"name": name, "status": "active"}
...
>>> payload = {"tags": [gen_name(name) for name in df["NAME"]]}
>>> payload
{'tags': [{'name': 'one', 'status': 'active'}, {'name': 'two', 'status': 'active'}, {'name': 'three', 'status': 'active'}]}
>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...