@Valeriu147

Как получить из JSON файла нужные значения в unix?

Добрый день. Есть дропбокс аккаунт, в нем есть список файлов с логами, хотелось бы получить список содержимого папки в дропбокс. Использую дропбокс апи получаю все это дело:

{"entries": [{".tag": "file", "name": "nginx.log.2017.05.07.gz", "path_lower": "/log_files/nginx.log.2017.05.07.gz", "path_display": "/log_files/nginx.log.2017.05.07.gz", "id": "id:ar6tGrcsTJAAAAAAAAMGEA", "client_modified": "2017-05-08T09:44:23Z", "server_modified": "2017-05-08T09:44:24Z", "rev": "337344a63f579", "size": 1707590, "content_hash": "b6de69589f769e0919726792ead6410950f0afbc9139b045ea4ad6655b10fd85"}, {".tag": "file", "name": "nginx.log.2017.05.09.gz", "path_lower": "/log_files/nginx.log.2017.05.09.gz", "path_display": "/log_files/nginx.log.2017.05.09.gz", "id": "id:ar6tGrcsTJAAAAAAAAMGEQ", "client_modified": "2017-05-08T09:44:25Z", "server_modified": "2017-05-08T09:44:25Z", "rev": "337354a63f579", "size": 1707590, "content_hash": "88981b3cb4620ca73ac8b7a238967c932e6c22fdbdd4f29144190a97e25d5df3"}, {".tag": "file", "name": "nginx.log.2017.05.10.gz", "path_lower": "/log_files/nginx.log.2017.05.10.gz", "path_display": "/log_files/nginx.log.2017.05.10.gz", "id": "id:ar6tGrcsTJAAAAAAAAMGEg", "client_modified": "2017-05-08T09:44:27Z", "server_modified": "2017-05-08T09:44:27Z", "rev": "337364a63f579", "size": 1707590, "content_hash": "dc776911a22ec4fb2770ba6bfc5aaaee0c280517efd85816196039bc14f29215"}, {".tag": "file", "name": "nginx.log.2017.05.11.gz", "path_lower": "/log_files/nginx.log.2017.05.11.gz", "path_display": "/log_files/nginx.log.2017.05.11.gz", "id": "id:ar6tGrcsTJAAAAAAAAMGEw", "client_modified": "2017-05-08T09:44:28Z", "server_modified": "2017-05-08T09:44:29Z", "rev": "337374a63f579", "size": 1707590, "content_hash": "9ed8c9e4434ce9fe11ec086a1e18de8ee44515fed76361ca4fe955a2bb2173ed"}, {".tag": "file", "name": "nginx.log.2017.05.12.gz", "path_lower": "/log_files/nginx.log.2017.05.12.gz", "path_display": "/log_files/nginx.log.2017.05.12.gz", "id": "id:ar6tGrcsTJAAAAAAAAMGFA", "client_modified": "2017-05-08T09:44:30Z", "server_modified": "2017-05-08T09:44:32Z", "rev": "337384a63f579", "size": 1707590, "content_hash": "04e090507ce3c1dca9b9659561056daaa4ca9eb13b4edb5f704496ae9fe2054d"}], "cursor": "AAGTiqg1Wqg2ZsS3R7P6rV-6TrFPYIu827rILrrtcGVW8z51P0UXSizxHKKdMx8k8gc8t3JB5eeoCWxPpC-bT_gv-4y22WbZGHIEDz74CFdzi_2kpn7lDbJ_HVVTdkHEtShtEiHZ4EQhrZJtCZ_8vk0yvmkMuRTsmxkD30q2VYHV54MqVRmytvZjqGTVt5NL41PPfbkBfFMWjIWq-MxOgVxm", "has_more": false}


Как я могу получить просто список файлов, без ненужной технической информации, как я вижу тут awk особо-то и не справится.
Желательно бы получить в читаемом виде, вроде такого:
nginx.log.2017.05.07.gz
nginx.log.2017.05.09.gz
nginx.log.2017.05.10.gz
nginx.log.2017.05.11.gz
nginx.log.2017.05.12.gz
  • Вопрос задан
  • 779 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Swartalf
Сегодня делал похожие вещи, потому упрощу:
you_json_output | jq '.entries | .[] | .name'
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
можно что-то вроде этого:
#!/usr/bin/env python3

import json

data = 'your_json_data_here'

j = json.loads(data)
for entry in j['entries']:
        print(entry['name'])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы