我有类似这样的json:
{"posts":[{"no":3919193, "p": "kekekekek"},
{"no":3929342, "p": "trololol"}]}
我想提取任何具有“否”键的内容,我该怎么做?
我知道我可以使用json.load
进行解析,但我不确定如何访问每个值。提前谢谢!
答案 0 :(得分:0)
您可以使用列表推导来遍历obj['posts']
中的词组:
obj = json.load(...)
[dct for dct in obj['posts'] if 'no' in dct]
例如,
>>> import json
>>> obj = json.loads('''{"posts":[{"no":3919193, "p": "kekekekek"},
{"no":3929342, "p": "trololol"}]}''')
>>> [dct for dct in obj['posts'] if 'no' in dct]
[{u'no': 3919193, u'p': u'kekekekek'}, {u'no': 3929342, u'p': u'trololol'}]
答案 1 :(得分:0)
使用json.load
后,您将拥有一个字典,其唯一的键指向字典列表:
data = json.loads("""{"posts":[{"no":3919193, "p": "kekekekek"},
{"no":3929342, "p": "trololol"}]}""")
nos = [i for i in data['posts'] if 'no' in i]
当然,示例中的每个列表元素都满足您的要求,即对象具有键“否”。