首页 > 解决方案 > 无论数据帧中数组中所需变量的长度如何,如何在其中动态创建包含数组的字典?

问题描述

我有一个看起来像这样的数据框:

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 中有一条记录,那么我只需要一个数组。

标签: arrayspython-3.xpandas

解决方案


我稍微编辑了这个答案,这对你的情况很有用(如果我理解正确的话)

>>> 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'}]}
>>

推荐阅读