【发布时间】:2020-09-11 16:50:49
【问题描述】:
我试图在一个函数上运行一个循环(数据框中的列),该函数返回一个字典列表,并且应该将每个迭代的结果存储在一个单独的列表中,用于列中的每个值。
Example:
name id type
a 1 sol
b 2 sol
c 3 sol
我尝试了以下代码,但没有得到任何结果
for id in df:
name_id = []
name_id.append(getAct(67,id,'pow','gen'))
Output
[{'status': 'success', 'message': 'success', 'data': []}]
def getAct(client_id, plant_id, tag_name, type_name):
api_endpoint = ''
today = datetime.date.today()
headers = {'token': get_token()['access_token'],
'Content-Type': 'application/json'}
params = {'client_id': str(client_id),
'from-date': str(today),
'to-date': str(today),
'tag': str(tag_name),
'type': str(type_name),
'plant-id': str(plant_id)
}
r = requests.post(url=api_endpoint, headers=headers, params=params)
return r.json()
getAct 函数示例:
getAct(67,1,'pow','gen')
[{'utc_time': '2020-05-01 14:51:54',
'value': -0.02,
'insert': '2020-05-01 20:31:16'},
{'utc_time': '2020-05-01 14:52:51',
'value': -0.02,
'insert': '2020-05-01 20:31:21'}]
预期输出
a_1 = [{'utc_time': '2020-05-01 14:51:54',
'value': -0.02,
'insert': '2020-05-01 20:31:16'},
{'utc_time': '2020-05-01 14:52:51',
'value': -0.02,
'insert': '2020-05-01 20:31:21'}]
b_2 = [{'utc_time': '2020-05-01 14:51:54',
'value': 4.02,
'insert': '2020-05-01 20:31:16'},
{'utc_time': '2020-05-01 14:52:51',
'value': 4.02,
'insert': '2020-05-01 20:31:21'}]
c_3 = [{'utc_time': '2020-05-01 14:51:54',
'value': 6.9,
'insert': '2020-05-01 20:31:16'},
{'utc_time': '2020-05-01 14:52:51',
'value': 7.3,
'insert': '2020-05-01 20:31:21'}]
我是 Python 新手。请帮忙!
【问题讨论】:
-
目前尚不清楚预期数据与 DataFrame 中的输入数据有何关系,除了输入和输出都具有三个元素。您不能(或不应该)在脚本中获取以数据命名的变量,这也不是很有用。
getAct来自哪里? -
它们通过
id关联。预期输出中的每个字典列表都对应于在函数中作为参数传递的 id 号。getAct来自 API。我正在为您的细读和需要添加该功能。
标签: python function loops dataframe dictionary