Как удалить квадратные скобки в JSON, чтобы его можно было преобразовать в фрейм данных на Python

#python #arrays #pandas #dataframe #dictionary

#питон #массивы #панды #фрейм данных #словарь

Вопрос:

У меня есть файл Json

 {  "pre_processing":{  "type":"single_file",  "file_rename":"hr-feed"  },  "source_name":"hr-feed-client",  "source_contents":[  {  "file_name":"hr-client",  "table_name":"raw_data",  "parser":"delimited-csv-file",  "parser_parameters":{  "delimiter":",",  "quotechar":""",  "encoding":"utf-168"  },  "fields":{  "employee_id":{  "type":{  "field_type":"string"  },  "original_field_name":"Employee ID",  "mode":"required"  }  }  }  ],  "source_relationships":[    ],  "entity_mapping":{    } }  

Я хочу преобразовать небольшую часть JSON в фрейм данных, используя:

 data = data["source_contents"]  df = pd.DataFrame.from_dict(data["fields"], orient="index")  

Но это создает ошибку

 TypeError: list indices must be integers or slices, not str  

Когда я вручную запускаю раздел без квадратных скобок, он работает нормально, поэтому как мне удалить [], чтобы функция from_dict не нарушалась?

Ответ №1:

[] указывает список, поэтому сначала вам нужно попасть в первый элемент списка.

 data = data["source_contents"][0] df = pd.DataFrame.from_dict(data["fields"], orient="index")  

Выход:

 type original_field_name mode employee_id {'field_type': 'string'} Employee ID required