如何在python中轻松地从字典列表中获取值列表?

如何在python中轻松地从字典列表中获取值列表?,python,Python,以下是json:(仅供参考,“0”到“2”是原始pd.Series([1,1,1])的索引) 我想从json1获取[1,1,1] 我试过: records=[json1中的v代表v['hi']] emt=[] for rec in records: for i in rec.keys(): value = rec[i] emt.append(value) 有没有像一行代码这样简单易行的方法来实现它?谢谢你可以使用dict.values: list(map(next

以下是json:(仅供参考,“0”到“2”是原始pd.Series([1,1,1])的索引)

我想从json1获取
[1,1,1]

我试过:

records=[json1中的v代表v['hi']]

emt=[]
for rec in records:
   for i in rec.keys():
      value = rec[i]
      emt.append(value)

有没有像一行代码这样简单易行的方法来实现它?谢谢你可以使用
dict.values

list(map(next, map(iter, map(dict.values, json1['hi']))))
虽然这仅在每个dict中有一个键时才有效。否则,您可以使用
itertools.chain

list(chain(*map(dict.values, json1['hi'])))

json1['hi']
返回一个列表

从这个列表中,你有字典

在每个字典中,您需要第一个也是唯一的值,可以使用
next(iter(iterable))


如果您的数据类型不方便:

json1 = {
    'hi':[
      {'0':1},
      {'1':1},
      {'2':1}
   ]
}
[next(iter(d.values())) for d in json1["hi"]]
json1 = {
    'hi':{'0':1,
          '1':1,
          '2':1}
    }
list(json1['hi'].values())
那么,提取所需数据的代码也会带来不便:

json1 = {
    'hi':[
      {'0':1},
      {'1':1},
      {'2':1}
   ]
}
[next(iter(d.values())) for d in json1["hi"]]
json1 = {
    'hi':{'0':1,
          '1':1,
          '2':1}
    }
list(json1['hi'].values())
如果您的数据类型方便:

json1 = {
    'hi':[
      {'0':1},
      {'1':1},
      {'2':1}
   ]
}
[next(iter(d.values())) for d in json1["hi"]]
json1 = {
    'hi':{'0':1,
          '1':1,
          '2':1}
    }
list(json1['hi'].values())
那么代码也会很方便:

json1 = {
    'hi':[
      {'0':1},
      {'1':1},
      {'2':1}
   ]
}
[next(iter(d.values())) for d in json1["hi"]]
json1 = {
    'hi':{'0':1,
          '1':1,
          '2':1}
    }
list(json1['hi'].values())

这个故事的寓意是:使用字典,而不是一系列单元素字典。

因为你喜欢短代码:

[*map(lambda x: list(x.values())[0], json1['hi'])]

[下一步(iter(d.values()))在json1[“hi”]]中为d编写代码
仅仅因为你可以在一行上写东西并不意味着你should@OneCricketeer同意,但问题只要求一行。出于好奇,
json1['hi']
是一个单条字典列表,而不仅仅是一个字典?@0x5453 100%同意。单条字典列表通常没有用处,与其研究如何从中提取数据,不如更合理地重新构造数据,无疑会更有成效。我想,除非它来自第三方代码。