Форум сайта python.su
6
Необходимо из файла json выдрать названия всех вершин и вывести их в определенном виде в csv.
Например:
Имеем такой файл
{
"dataset": [
{
"id":
{
"$oid": "asd1dad333fgdg5wg2"
},
"theme": "all",
"publisher": {
"name": "ORNL_DAAC",
"subOrganizationOf": {
"name": "National Aeronautics and Space Administration",
"subOrganizationOf": {
"name": "U.S. Government"
}
}
}
},
{
"id":
{
"$oid": "sd2g54g548kd"
},
"publisher": {
"name": "ORN_AAC",
"subOrganizationOf": {
"name": "DPUI"
}
}
}
]
}"id/$oid", "publisher/name", "publisher/subOrganizationOf/name", "publisher/subOrganizationOf/subOrganizationOf/name"
Отредактировано Firik (Фев. 10, 2016 11:30:59)
Офлайн
568
Рекурсивный обход дерева, покажите ваш код который не получается.
Офлайн
6
Пробовал разобрать хотя бы первый блок, вывод неверный.
def get_first_row(input_object): global res_string if not isinstance(input_object, basestring): for x in input_object: res_string.append(x) if isinstance(input_object[x], basestring): break for y in input_object[x]: res_string.append(y) if isinstance(input_object[x][y], dict): get_first_row(input_object[x][y]) elif isinstance(input_object[x][y], basestring): headers.append("/".join(res_string)) res_string = [] break else: headers.append(input_object) return sorted(headers)
"publisher/subOrganizationOf/subOrganizationOf/name", "name/name"
Отредактировано Firik (Фев. 10, 2016 12:01:07)
Офлайн