Path: csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!gordon From: John Gordon Newsgroups: comp.lang.python Subject: Re: Finding scores from a list Date: Tue, 24 Nov 2015 17:47:17 +0000 (UTC) Organization: PANIX Public Access Internet and UNIX, NYC Lines: 36 Message-ID: References: <277843f7-c898-4378-85ea-841b09a289e3@googlegroups.com> NNTP-Posting-Host: panix2.panix.com X-Trace: reader1.panix.com 1448387237 4065 166.84.1.2 (24 Nov 2015 17:47:17 GMT) X-Complaints-To: abuse@panix.com NNTP-Posting-Date: Tue, 24 Nov 2015 17:47:17 +0000 (UTC) User-Agent: nn/6.7.3 Xref: csiph.com comp.lang.python:99375 In <277843f7-c898-4378-85ea-841b09a289e3@googlegroups.com> Cai Gengyang writes: > results = [ > {"id": 1, "name": "ensheng", "score": 10}, > {"id": 2, "name": "gengyang", "score": 12}, > {"id": 3, "name": "jordan", "score": 5}, > ] Okay, this is a list. > I want to find gengyang's score. This is what I tried : > >>> print((results["gengyang"])["score"]) > but I got an error message instead : > Traceback (most recent call last): > File "", line 1, in > print((results["gengyang"])["score"]) > TypeError: list indices must be integers, not str Lists are indexed by number, not by name. You want something like this: for result in results: if result["name"] == "gengyang": print result["score"] break -- John Gordon A is for Amy, who fell down the stairs gordon@panix.com B is for Basil, assaulted by bears -- Edward Gorey, "The Gashlycrumb Tinies"