我正在尝试解析由一组对象组成的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'语句以及重复迭代列表。但似乎应该有更多的pythonic方式来实现它,例如:
fieldA = [ (obj.fieldA | "missing") for obj in json.objects]
python语法是否允许这样的内容?
答案 0 :(得分:12)
您需要dict.get()
方法:
fieldA = [obj.get("fieldA", "missing") for obj in json["objects"]]
请注意,字典的项目使用["key"]
访问,而不是.key
。