Python 从复杂的JSON数据中获取所需的值

Python 从复杂的JSON数据中获取所需的值,python,json,dictionary,Python,Json,Dictionary,从下面的JSON响应中,我只想获取bkg键的值,并将所有这些值附加到一个列表中 从这个特定的数据中,我希望最终结果为[2443321066459135469013001504724683004722942] { u 'data': { u '244332': { u 'hotel_data_node': { u '_id': 919824916605752258 L, u 'ids':

从下面的JSON响应中,我只想获取
bkg
键的值,并将所有这些值附加到一个列表中

从这个特定的数据中,我希望最终结果为[2443321066459135469013001504724683004722942]

    { u 'data': {
        u '244332': {
            u 'hotel_data_node': {
                u '_id': 919824916605752258 L,
                u 'ids': {
                    u 'bkg': [u '244332'],
                    u 'voy': 9174725345440343760 L
                },
                u 'vendor_info': {
                    u 'vendor_id': u '244332',
                    u 'vendor': u 'bkg'
                }
            }
        },

        u '1066459': {
            u 'hotel_data_node': {
                u '_id': 2735067627304153118 L,
                u 'ids': {
                    u 'bkg': [u '1066459'],
                    u 'voy': 6032400126419907661 L
                },
                u 'vendor_info': {
                    u 'vendor_id': u '1066459',
                    u 'vendor': u 'bkg'
                }
            }
        },

        u '1354690': {
            u 'hotel_data_node': {
                u '_id': 2001829735393701201 L,
                u 'ids': {
                    u 'bkg': [u '1354690'],
                    u 'voy': 5694961161423235761 L
                },
                u 'vendor_info': {
                    u 'vendor_id': u '1354690',
                    u 'vendor': u 'bkg'
                }
            }
        },

        u '1300150': {
            u 'hotel_data_node': {
                u '_id': 2937209460187035224 L,
                u 'ids': {
                    u 'bkg': [u '1300150'],
                    u 'voy': 2447701064370670892 L
                },
                u 'vendor_info': {
                    u 'vendor_id': u '1300150',
                    u 'vendor': u 'bkg'
                }
            }
        },

        u '472468': {
            u 'hotel_data_node': {
                u '_id': 48272593877071744 L,
                u 'ids': {
                    u 'bkg': [u '472468'],
                    u 'voy': 658992090378786622 L
                },
                u 'vendor_info': {
                    u 'vendor_id': u '472468',
                    u 'vendor': u 'bkg'
                }
            }
        },

        u '300420': {
            u 'hotel_data_node': {
                u '_id': 2802488975195270489 L,
                u 'ids': {
                    u 'bkg': [u '300420'],
                    u 'voy': 8506688262306690280 L
                },
                u 'vendor_info': {
                    u 'vendor_id': u '300420',
                    u 'vendor': u 'bkg'
                }
            }
        },

        u '722942': {
            u 'hotel_data_node': {
                u '_id': 74159934735391119 L,
                u 'ids': {
                    u 'bkg': [u '722942'],
                    u 'voy': 2437681586480714100 L
                },
                u 'vendor_info': {
                    u 'vendor_id': u '722942',
                    u 'vendor': u 'bkg'
                }
            }
        }
    }
}

根据JSON格式,您只需执行以下操作:

your_json['data'].keys()
希望这有帮助

result = []
json = {u'data': {u'244332': {u'hotel_data_node': {u'_id': 919824916605752258L, u'ids': {u'bkg': [u'244332'], u'voy': 9174725345440343760L}, u'vendor_info': {u'vendor_id': u'244332', u'vendor': u'bkg'}}},

u'1066459': {u'hotel_data_node': {u'_id':2735067627304153118L, u'ids': {u'bkg': [u'1066459'], u'voy': 6032400126419907661L}, u'vendor_info': {u'vendor_id': u'1066459', u'vendor': u'bkg'}}},

u'1354690': {u'hotel_data_node': {u'_id': 2001829735393701201L, u'ids': {u'bkg': [u'1354690'], u'voy': 5694961161423235761L}, u'vendor_info': {u'vendor_id': u'1354690', u'vendor': u'bkg'}}},

u'1300150': {u'hotel_data_node': {u'_id': 2937209460187035224L, u'ids': {u'bkg': [u'1300150'], u'voy': 2447701064370670892L}, u'vendor_info': {u'vendor_id': u'1300150', u'vendor': u'bkg'}}},

u'472468': {u'hotel_data_node': {u'_id': 48272593877071744L, u'ids':{u'bkg': [u'472468'], u'voy': 658992090378786622L}, u'vendor_info': {u'vendor_id': u'472468', u'vendor': u'bkg'}}},

u'300420': {u'hotel_data_node': {u'_id': 2802488975195270489L, u'ids': {u'bkg': [u'300420'], u'voy': 8506688262306690280L},u'vendor_info': {u'vendor_id': u'300420', u'vendor': u'bkg'}}},

u'722942': {u'hotel_data_node': {u'_id': 74159934735391119L, u'ids': {u'bkg': [u'722942'], u'voy': 2437681586480714100L}, u'vendor_info': {u'vendor_id': u'722942', u'vendor': u'bkg'}}} }}

for key in json['data']: 
    result += json['data'][key]['hotel_data_node']['ids']['bkg']
print(result)
>>>[u'244332', u'1066459', u'1354690', u'1300150', u'472468', u'300420', u'722942']

我猜这是一个重复的问题,请参考:

也为了“u”的缘故:


当我尝试加载此json时,我得到了
json.decoder.jsondecoderror:应该是包含在双引号中的属性名:第1行第2列(char 1)
还检测到它为invalid@Racialz由于“u”的用法,它不是有效的JSON。正如@user3579261所说,如果所有的'bkg'值都与键相同,那么只需要执行json['data'].keys。