2016-05-16 6 views
-2

Из приведенного ниже ответа JSON я просто хочу получить значение bkg и добавить все эти значения в список.Получите требуемое значение из сложных данных JSON

Из этой конкретной информации, я хочу, конечный результат, как [244332, 1066459, 1354690, 1300150, 472468, 300420, 722942]

{ 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' 
       } 
      } 
     } 
    } 
} 
+0

Когда я пытаюсь загрузить это json Я получаю 'json.decoder.JSONDecodeError: ожидание имени свойства, заключенного в двойные кавычки: строка 1 столбец 2 (char 1) 'http://www.jsonlint.com также обнаруживает его как недействительный – Keatinge

+0

@ Racialz Это не действительный JSON из-за использования« u ». http://stackoverflow.com/questions/13940272/python-json-loads-returns-items-prefixing-with-u – RoyaumeIX

ответ

1

Основываясь на вашем формате JSON, вы можете просто сделать:

your_json['data'].keys() 
0

Надеюсь, это поможет.

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'] 
+0

как @ user3579261 сказал, что если все ваши значения «bkg» идентичны вашим ключам, тогда вы просто необходимо выполнить json ['data']. –

Смежные вопросы