Как читать вложенные значения данных JSON в Python? - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь прочитать вложенный файл JSON в Python.Это в следующем формате -

{

"13638": {

    "Advocate Name": "BRET ALLEN",

    "No. of Cases": "2",

    "WP 15699/2019": {

         "Case Category": "SERVICE",

         "District": "HYDERABAD",

         "Filing Date": "23/07/2019",

         "Registration Date": "24/07/2019",

         "Listing Date": "26/08/2019",

         "Case Status": "PENDING"
          },

    "CRLP 804/2019": {

         "Case Category": "-",
         "District": "HYDERABAD",
         "Filing Date": "12/02/2019",
         "Registration Date": "12/02/2019",
         "Listing Date": "21/06/2019",
         "Case Status": "PENDING"
         }

},

"231": 
   {

    "Advocate Name": "DAISY LEE",

    "No. of Cases": "28",

    "WP 1518/2019": {
         "Case Category": "NON-SERVICE",
         "District": "HYDERABAD",
         "Filing Date": "28/01/2019",
         "Registration Date": "28/01/2019",
         "Listing Date": "11/02/2019",
         "Case Status": "DISPOSEDClick here to see the Order"
          },
       "WP 2896/2019": {
         "Case Category": "NON-SERVICE",
         "District": "HYDERABAD",
         "Filing Date": "12/02/2019",
         "Registration Date": "13/02/2019",
         "Listing Date": "-",
         "Case Status": "PENDING"
         }
 }

}

Я рассматриваю 2 ключа в приведенных выше данных - «13638» и «231».Я хочу получить доступ к полю «Состояние дела» и преобразовать его в фрейм данных.

Ожидаемый результат:


| Статус дела |

В ОЖИДАНИИ

PENDING

DISPOSEDНажмите здесь, чтобы увидеть заказ

PENDING

1 Ответ

1 голос
/ 29 сентября 2019

Вы можете получить его, перебирая словарь.

case_status_list = []
for key, value in data.items():
    for nested_key, nested_value in value.items():
        try:
            status = nested_value.get("Case Status", None)
            case_status_list.append(status)
        except AttributeError as e:
            pass
print(case_status_list)

outut:

['PENDING', 'PENDING', 'DISPOSEDClick here to see the Order', 'PENDING']

А чтобы преобразовать в фрейм данных, вы можете отослать этот вопрос

L = ['Thanks You', 'Its fine no problem', 'Are you sure']

#create new df 
df = pd.DataFrame({'col':L})
print (df)

                   col
0           Thanks You
1  Its fine no problem
2         Are you sure
...