Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从python中的字典列表中提取特定键的值?_Python_List - Fatal编程技术网

如何从python中的字典列表中提取特定键的值?

如何从python中的字典列表中提取特定键的值?,python,list,Python,List,如果我有以下类型的数据-字典列表,如何从中提取一些键值 comps = [ { "name":'Test1', "p_value":0.02, "group0_null": 0.0, "group1_null": 0.0, },{ "name":'Test2', "p_value":0.05, "group0_n

如果我有以下类型的数据-字典列表,如何从中提取一些键值

comps = [
{
    "name":'Test1',
    "p_value":0.02,
    "group0_null": 0.0,
    "group1_null": 0.0,
},{
    "name":'Test2',
    "p_value":0.05,
    "group0_null": 0.0,
    "group1_null": 0.0,
},{
    "name":'Test3',
    "p_value":0.03,
    "group0_null": 0.0,
    "group1_null": 0.0,
},{
    "name":'Test4',
    "p_value":0.07,
    "group0_null": 0.0,
    "group1_null": 0.0,
},{
    "name":'Test5',
    "p_value":0.03,
    "group0_null": 0.0,
    "group1_null": 0.0,
},{
    "name":'Test6',
    "p_value":0.02,
    "group0_null": 0.0,
    "group1_null": 0.0,
},{
    "name":'Test7',
    "p_value":0.01,
    "group0_null": 0.0,
    "group1_null": 0.0,
}]
结果

从上面的数据来看,假设我只想要
name
p_值
。我怎样才能得到这个结果

[{
    "name":'Test1',
    "p_value":0.02,
},{
    "name":'Test2',
    "p_value":0.05,
},{
    "name":'Test3',
    "p_value":0.03,
},{
    "name":'Test4',
    "p_value":0.07,
},{
    "name":'Test5',
    "p_value":0.03,
},{
    "name":'Test6',
    "p_value":0.02,
},{
    "name":'Test7',
    "p_value":0.01,
}]
这说明了一切

[c for c in comps]
这只显示名称 [c['name']代表公司中的c]

但如果我这样做:

[c['name','p_value'] for c in comps ]
我得到一个错误:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-94-b29459f7b089> in <module>
----> 1 [c['name','p_value'] for c in comps['continuous_explainers'] ]
      2 
      3 # cont_comps = []
      4 
      5 # for c in comps['continuous_explainers']:

<ipython-input-94-b29459f7b089> in <listcomp>(.0)
----> 1 [c['name','p_value'] for c in comps['continuous_explainers'] ]
      2 
      3 # cont_comps = []
      4 
      5 # for c in comps['continuous_explainers']:

KeyError: ('name', 'p_value')
数据

[{'name': 'Gender',
  'column_index': 2,
  'ks_score': 0.0022329709328575142,
  'p_value': 1.0,
  'quartiles': [[0.0, 0.0, 1.0, 1.0, 2.0], [0.0, 0.0, 1.0, 1.0, 2.0]],
  't_test_p_value': 0.8341377317414621,
  'diff_means': 0.0014959875249118681,
  'primary_group_mean': 0.6312769010043023,
  'secondary_group_mean': 0.6297809134793905,
  'ks_sign': '+',
  'group0_percent_null': 0.0,
  'group1_percent_null': 0.0},
 {'name': 'Gender_Missing_color',
  'column_index': 3,
  'ks_score': 2.220446049250313e-16,
  'p_value': 1.0,
  'quartiles': [[1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0]],
  't_test_p_value': 1.0,
  'diff_means': 0.0,
  'primary_group_mean': 1.0,
  'secondary_group_mean': 1.0,
  'ks_sign': '0',
  'group0_percent_null': 0.9966523194643712,
  'group1_percent_null': 0.9959153360564427},
 {'name': 'Gender_Missing',
  'column_index': 4,
  'ks_score': 0.0007369834078797544,
  'p_value': 1.0,
  'quartiles': [[0.0, 0.0, 0.0, 0.0, 1.0], [0.0, 0.0, 0.0, 0.0, 1.0]],
  't_test_p_value': 0.40301091478187256,
  'diff_means': -0.0007369834079284866,
  'primary_group_mean': 0.0033476805356288893,
  'secondary_group_mean': 0.004084663943557376,
  'ks_sign': '-',
  'group0_percent_null': 0.0,
  'group1_percent_null': 0.0},
 {'name': 'Male',
  'column_index': 5,
  'ks_score': 0.0029699543407862294,
  'p_value': 0.9999999999915384,
  'quartiles': [[0.0, 0.0, 1.0, 1.0, 1.0], [0.0, 0.0, 1.0, 1.0, 1.0]],
  't_test_p_value': 0.6740956861786738,
  'diff_means': 0.0029699543407684104,
  'primary_group_mean': 0.6245815399330444,
  'secondary_group_mean': 0.621611585592276,
  'ks_sign': '+',
  'group0_percent_null': 0.0,
  'group1_percent_null': 0.0}]
这是我得到的输出。如上所述,我只需要此词典列表中的一些数据。

试试看

[{'name':c['name'],'p_value':c['p_value']}表示comps中的c]

您可以在
比较中为每个对象创建一个新的dict,并仅使用
名称
p\u值
键对其进行初始化


ex=[{'name':d['name'],'p_value':d['p_value']}用于比较中的d]

我仍然不确定如何让上述答案对我有效。然而,我想出了另一种方法:

test = [(c['name'],c['p_value'], c['group0_percent_null']) for c in comps]
pd.DataFrame(test)

    0   1   2
0   ID  5.374590e-13    0.000000
1   Gender  1.000000e+00    0.000000
2   Gender_Missing_color    1.000000e+00    0.996652
3   Gender_Missing  1.000000e+00    0.000000
4   Male    1.000000e+00    0.000000
... ... ... ...

它给了我我想要的结果。

[(c['name',c['p\u value'])表示comps中的c]
?您期望的结果是什么?
[{'name':项['name'],'p_值]:comps中项的项['p_值']}
@juanpa.arrivillaga他们给出了期望的结果?只是一份精简的目录?哈,太棒了。所以你根本就没有这种结构,它可能被序列化为JSON,所以一个巨大的string@roganjosh,我已经更新了问题,以显示我从服务器收到的实际数据。但问题仍然存在,即使您认为结构不一样,而且由于我在python方面没有那么丰富的经验,让我们假设它不是。我该如何解决这个问题呢?虽然这段代码可能会回答这个问题,但它如何或为什么解决这个问题会真正有助于提高你文章的质量。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
test = [(c['name'],c['p_value'], c['group0_percent_null']) for c in comps]
pd.DataFrame(test)

    0   1   2
0   ID  5.374590e-13    0.000000
1   Gender  1.000000e+00    0.000000
2   Gender_Missing_color    1.000000e+00    0.996652
3   Gender_Missing  1.000000e+00    0.000000
4   Male    1.000000e+00    0.000000
... ... ... ...