如何在列表中从Python对象中提取单个属性?

时间:2016-02-27 06:34:05

标签: python list-comprehension

我有一个名为Profile的Python对象,其first namelast name。我有一个名为Profiles的数组,它是Profile个对象的集合:

Profiles = []
Profile  = {}
Profile['firstname'] = "foo"
Profile['lastname'] = "bar"
Profiles.append(Profile)

我需要将此数组作为json发布到Web服务,但是我只想发布firstname属性。

我发布了这样的数组:

response = urllib2.urlopen(req, json.dumps(Profiles))

如何修改我的代码只发布名字?我意识到我可以循环并创建一个新列表,但是想知道是否有更简单的方法?

2 个答案:

答案 0 :(得分:2)

迭代列表并使用列表推导从dict中提取所需的元素。

response = urllib2.urlopen(req, json.dumps([p["firstname"] for p in Profiles]))

答案 1 :(得分:1)

你走了:

json.dumps([p['firstname'] for p in Profiles])

对于两个领域,你可以写:

json.dumps([{'firstname':p['firstname'],'lastname':p['lastname']} for p in Profiles])