访问字典中列表中的字典

时间:2015-12-05 18:09:29

标签: python list dictionary

user = code.chan["#example"]["Someuser"]
# user would look something like:
{
    'normal': True,
    'voiced': False,
    'op': False,
    'count': 24,
    'messages': [
        {
            'time': 1448847813,
            'message': "This is my mesage"
        },
        {
            'time': 1448847818,
            'message': "And this is another"
        }
    ]
}

我试图将“消息”中的项目放入列表中,以检查字符串是否与任何项目匹配。

如果需要更多信息,请与我们联系。

4 个答案:

答案 0 :(得分:2)

我想你想要这个:

print [i['message'] for i in user['messages']]

或者,

print map(lambda x:x['message'],user['messages'])

输出:

['This is my mesage', 'And this is another']

要仅打印最后一项,您可以使用否定索引。如下所示:

print [i['message'] for i in user['messages']][-1]

输出:

And this is another

答案 1 :(得分:1)

你可以这样做:

for message in user['messages']:
    if some_string == message['message']:
        match = True

答案 2 :(得分:1)

如果你想搜索它们,你会想做类似的事情;

if any(search_string in i['message'] for i in user['messages']):
    print 'found your query'

答案 3 :(得分:1)

好的我对这个问题感到有点困惑,但如果我想的正确,这是我的答案。

你有一个列表列表,我怀疑它是json格式,所以你需要像这样访问它

#fetch data 
r = requests.get(wherever_you_fetch_them)
s = r.content.decode()
json_resp = json.loads(s)

succ = json_resp['messages']['message']

你可以创建一个循环,但我无法帮助你更多,因为我不知道有关输入数据的任何信息。