我试图解析一个JSON对象,它由一个对象数组组成。每个对象包含多个字段,但字段经常丢失。下面是一个例子:

{
    'objects' : [{
        'fieldA' : 1,
        'fieldB' : 2,
        'fieldC' : 3,
    },
    {
        'fieldA' : 7,
        'fieldC' : 8,
    },
    {},
    {
        'fieldB' : 1,
        'fieldC' : 0,
    }]
}

我想将每个字段转换成一个列表,保留对象的顺序,相当于:
fieldA = [1,7,"Missing","Missing"]
fieldB = [2,"Missing","Missing",1]
fieldC = [3,8,"Missing",0]

有什么简单的方法可以做到这一点吗?我可以想出一些方法来做这件事,包括很多“if”和“in”语句,以及在列表上重复迭代。但似乎应该有一种更像蟒蛇的方法,比如:
fieldA = [ (obj.fieldA | "missing") for obj in json.objects]

python语法允许这样的东西吗?

最佳答案

您需要dict.get()方法:

fieldA = [obj.get("fieldA", "missing") for obj in json["objects"]]

请注意,字典中的项是用["key"]访问的,而不是用.key访问的。

关于python - 在python中,有没有一种方法可以自动替换缺失值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8313464/

10-12 17:01