json去掉多个列表

这个问题在这里已经有了答案:

  • 从JSON文件解析值? 7个答案

  • 我认为@ Jean-FrançoisFabre试图表明:

    import json
    
    response = """
        {
          "age":[
            {"#":"1","age":10},
            {"#":"2","age":12},
            {"#":"3","age":16},
            {"#":"4","age":3}
          ],
          "age2":[
            {"#":"1","age":10},
            {"#":"2","age":12},
            {"#":"3","age":16},
            {"#":"4","age":3}
          ],
          "days_month":31,
          "year":2017
        }
    """
    
    j = json.loads(response)
    # note that the [2] means the third element in the "age2" list-of-dicts
    print(j['age2'][2]['#'])  # -> 3
    print(j['age2'][2]['age'])  # -> 16
    

    json.loads()将JSON格式的字符串转换为Python对象。 特别是它将JSON对象转换成Python字典和JSON列表到Python list对象中。 这意味着在这种情况下,您可以访问存储在变量j中的结果的内容,就如同它是一种或多种这些类型的Python数据类型的本地混合(并且看起来与在响应)。


    由于您所查找的搜索标准未包含在各个数据结构的索引中,因此我会使用列表理解来执行此操作。 对于你的例子,这将是

    [person['age'] for person in j['age2'] if person['#'] == u'3'][0]
    

    这遍历了'age2'下列表中的所有项目,并将所有编号为'3'的项目放入列表中。 [0]选择列表的第一个条目。

    但是,这是非常低效的。 如果你有大的数据集,你可能想看看熊猫:

    df = pandas.DataFrame(j['age2'])
    df[df['#'] == '3']['age']
    

    只要您的数据可以用某种系列或表格来表示,性能就会更高。

    链接地址: http://www.djcxy.com/p/38055.html

    上一篇: json strip multiple lists

    下一篇: How to read and write dictionaries to external files in python?