#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