在Python中操作包含其他列表的列表



我试图从列表中的列表中提取信息,以从下面的信息中获得类似的信息:('h': '0.77584', 'l': '0.77292'), ('h': '0.77521', 'l': '0.77206')

print(dict)

[{'complete': True, 'volume': 2290, 'time': '2021-01-15', 'mid': {'o': '0.77540', 'h': '0.77584', 'l': '0.77292', 'c': '0.77440'}}, {'complete': True, 'volume': 2312, 'time': '2021-01-15', 'mid': {'o': '0.77436', 'h': '0.77521', 'l': '0.77206', 'c': '0.77206'}}]

不知道该怎么做。我试着

something = list(list(dict.items())[0].items())[3][1]

print(something)

然而,这返回{"o":"0.77540","h":"0.77584","l":"0.77292","c":"0.77440"}

如何获得请求的数据?

您可以使用以下列表和字典推导

dict = [{'complete': True, 'volume': 2290, 'time': '2021-01-15',  'mid': {'o': '0.77540', 'h': '0.77584', 'l': '0.77292', 'c': '0.77440'}},  {'complete': True, 'volume': 2312, 'time': '2021-01-15',  'mid': {'o': '0.77436', 'h': '0.77521', 'l': '0.77206', 'c': '0.77206'}}]

res = [{k:v for k, v in i['mid'].items() if k in 'hl'} for i in dict]
print(res)

输出
[{'h': '0.77584', 'l': '0.77292'}, {'h': '0.77521', 'l': '0.77206'}]

首先,您可以从列表中的每个父字典中获取mid子字典。

dict = [{'complete': True, 'volume': 2290, 'time': '2021-01-15',  'mid': {'o': '0.77540', 'h': '0.77584', 'l': '0.77292', 'c': '0.77440'}},  {'complete': True, 'volume': 2312, 'time': '2021-01-15',  'mid': {'o': '0.77436', 'h': '0.77521', 'l': '0.77206', 'c': '0.77206'}}]
old_dict = [dict[0]['mid'],dict[1]['mid']]

然后循环遍历这些条目并根据键进行过滤(即删除oc):

list_you_want = []
for i in [0,1]:
list_you_want.append({ your_key: old_dict[i][your_key] for your_key in ['h','l'] })

等于:

[{'h': '0.77584', 'l': '0.77292'}, {'h': '0.77521', 'l': '0.77206'}]

最新更新