Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
3 / 3 / 0
Регистрация: 11.04.2014
Сообщений: 53

Как распарсить данные из первого json-а и перекинуть их в другой json

13.09.2018, 17:08. Показов 4330. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, столкнулся с такой задачей. Есть вот такой json

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[
  {
    "replicas": 1,
    "version": "26.0.0",
    "env": "azure_prod4",
    "service": "catalog-preview-v2",
    "jobname": "auth/AppManage.2"
  },
  {
    "replicas": 4,
    "version": "2.0.8",
    "env": "azure_prod4",
    "service": "preview-as-service",
    "jobname": "suggest/AppManage.2"
  }
]
Необходимо извлечь некоторые данные, провести некоторые манипуляции над ними записать в другой json. Примерно как то так.

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[
  {
    "fullname": "auth/AppManage.2/azure_prod4",
    "params":
    {
      "Action": "$ACTION$",
      "Service": "catalog-preview-v2",
      "Services version": "26.0.0"
    }
  },
  {
    "fullname": "suggest/AppManage.2/azure_prod4",
    "params":
    {
      "Action": "$ACTION$",
      "Service": "preview-as-service",
      "Services version": "2.0.8"
    }
  },
]
Поскольку с питоном и json-ом столкнулся только сегодня. Смог накидать что-то вроде этого

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import json
 
path = '/Users/isamarskii/Downloads/json/small.json'
 
with open(path, 'r') as json_data:
    parsed_data = json.load((json_data))
    for i in parsed_data:
        fulname = str("{0}/{1}".format(i['jobname'], i['env']))
        service = str(i['service'])
        service = []
 
data = {
    '': [
        {
            'fulname': fulname,
            'service': service,
        },
        {
            'fulname': fulname,
            'service': service,
        },
    ],
}
 
json_str = json.dumps(data)
 
print(json_str)
Подскажи, правильно ли я двигаюсь? Как можно лучше это решить, если можно привести примеры кода, если нет, то ссылки, где можно ознакомиться с необходимым материалом.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.09.2018, 17:08
Ответы с готовыми решениями:

Как распарсить json, nlohmann json
Здраствуйте, как можно распарсить json с помощью библиотеки nlohmann json. // json std::string json =...

Распарсить с помощью Json.Net приходящий ответ в виде JSON
Нужна помощь с json {"success":true, "rgInventory":{ "1025429056":{ "id":"1025429056", "classid":"310779217",...

Распарсить данные с json
Всем привет, уже давно мучаюсь над этой проблемой, уже и гуглил(может конечно и плохо гуглил) но ничего не выходит Суть такая: делаю...

2
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
13.09.2018, 17:40
Лучший ответ Сообщение было отмечено GaGaReG как решение

Решение

Просто работай с нативными типами данных (списки и словари).

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from json import JSONDecoder, JSONEncoder
 
json_data = '''\
[
  {
    "replicas": 1,
    "version": "26.0.0",
    "env": "azure_prod4",
    "service": "catalog-preview-v2",
    "jobname": "auth/AppManage.2"
  },
  {
    "replicas": 4,
    "version": "2.0.8",
    "env": "azure_prod4",
    "service": "preview-as-service",
    "jobname": "suggest/AppManage.2"
  }
]'''
parsed_data = JSONDecoder().decode(json_data)
result_list = []
for i in parsed_data:
    result_list.append({
        "fullname": "{}/{}".format(i['jobname'], i['env']),
        "params": {
            "Action": i['service'],
            "Service": "catalog-preview-v2",
            "Services version": "26.0.0"
        },
    })
print(result_list)
print()
json_str = JSONEncoder().encode(result_list)
print(json_str)
1
3 / 3 / 0
Регистрация: 11.04.2014
Сообщений: 53
14.09.2018, 11:18  [ТС]
Итого, конечный варинт. Возможно кому-то понадобиться.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import json
 
path = 'small.json'
with open(path, 'r') as json_data:
    parsed_data = json.load((json_data))
 
result_list = []
for i in parsed_data:
    result_list.append({
        "fullname": "{}/{}".format(i['jobname'], i['env']),
        "params": {
            "Action": "$ACTION$",
            "Service": i['service'],
            "Services version": i['version']
        },
    })
 
end_path = 'small-target.json'
with open(end_path, "w", encoding="utf-8") as file:
    json.dump(result_list, file)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.09.2018, 11:18
Помогаю со студенческими работами здесь

Распарсить данные с json
Проблема в следующем, получаю ответ Json следующий: {"status": "ok", "followed_by": {"page_info": {"has_previous_page":...

Распарсить json и записать полученные данные в массив
Прочитал статью где такой json { "firstName": "Иван", "lastName": "Иванов", "address": { ...

Распарсить JSON (System.JSON)
{ "response": { "count": 3, "items": } } Доброго времени суток! Помогите, не пойму как получить обьекты...

Как передать из одного скрипта в другой данные в формате json?
подскажите пожалуйста, как передать из одного скрипта в другой данные в формате json?

Как распарсить json
Привет, есть json файл. как получить значения service, где значение replicas равно двум? Пытался следующим образом


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru