在python中,有没有办法自动替换缺失值?

Abe*_*Abe 2 python list

我正在尝试解析一个由一组对象组成的JSON对象.每个对象包含多个字段,但通常缺少字段.这是一个例子:

{
    'objects' : [{
        'fieldA' : 1,
        'fieldB' : 2,
        'fieldC' : 3,
    },
    {
        'fieldA' : 7,
        'fieldC' : 8,
    },
    {},
    {
        'fieldB' : 1,
        'fieldC' : 0,
    }]
}
Run Code Online (Sandbox Code Playgroud)

我想将每个字段转换为一个列表,保留对象的顺序,相当于:

fieldA = [1,7,"Missing","Missing"]
fieldB = [2,"Missing","Missing",1]
fieldC = [3,8,"Missing",0]
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?我可以想出办法,包括很多'if'和'in'语句以及重复迭代列表.但似乎应该有更多的pythonic方式来做到这一点,例如:

fieldA = [ (obj.fieldA | "missing") for obj in json.objects]
Run Code Online (Sandbox Code Playgroud)

python语法是否允许这样的东西?

Sve*_*ach 12

你需要这个dict.get()方法:

fieldA = [obj.get("fieldA", "missing") for obj in json["objects"]]
Run Code Online (Sandbox Code Playgroud)

请注意,字典的项目是使用而["key"]不是使用.key.