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

Изменить в json элемент только один раз

05.02.2022, 20:56. Показов 1134. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я не долго изучаю python
Надо написать функцию для перезаписывание информации в Json-е
Есть Json файл course
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    "course": [
        {
            "course_name": "Psychology",
            "course_teacher": "201005",
            "student": 0
        },
        {
            "course_name": "Psychology",
            "course_teacher": "201005",
            "student": 0
        },
        {
            "course_name": "Psychology",
            "course_teacher": "201005",
            "student": 0
        }
    ]
}

Мой код перезаписывает полностью, то есть есть ли имя студента "Ivan" то везде где есть "student" будет Ivan. А мне надо чтобы он перезаписал только 1, то есть если мы введем Ivan Надо чтобы наш Json файл изменился так
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 {
            "course_name": "Psychology",
            "course_teacher": "201005",
            "student": "Ivan"
        },
        {
            "course_name": "Psychology",
            "course_teacher": "201005",
            "student": 0
        },
        {
            "course_name": "Psychology",
            "course_teacher": "201005",
            "student": 0
        }
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    
def enunroll():
        c = 0
        freecourse = input("Enter a free course's name:")
        log = 0
        place = input("Enter a student name")
        with open("course.json") as json_data:
            data = json.load(json_data)
        for i in data["course"]:
            if i["course_name"] == freecourse and i["student"] == log: #to enroll to a course
                i["student"] = place
                c = c + 1
        with open("course.json", 'w') as outfile:
            json.dump(data, outfile, indent=4)
        if c > 0:
            print("You successfully enrolled to the free course")
        if c == 0:  # to define if free course was found or not
            print("Given course name was not found in our database")
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2022, 20:56
Ответы с готовыми решениями:

Вывести все столбцы, в которых первый элемент встречается только один раз.
Нужно сделать двухмерный массив, заполнить случайными числами и вывести все столбцы, в которых первый элемент встречается только один раз.

Программа не компилируется (не запускается) во второй раз (то есть только один раз)
почему у меня всего лишь один раз могу запустить программу через команду Run, когда хочу еще раз нажать Run не получается через средство...

Как сделать что бы код работал каждый раз а не только один раз
<div class="slider"> <img src="g1.jpg" class="g5"> <img src="g2.jpg" class="g55"> <img src="g3.jpg" class="g555"> <img...

3
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
06.02.2022, 02:50
У Вас цикл, если нашли нужную запись, выходите break-ом.
0
0 / 0 / 0
Регистрация: 17.09.2020
Сообщений: 58
06.02.2022, 12:06  [ТС]
Я не знаю как это реализовать вот и справшиваю здесь)
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
06.02.2022, 12:50
Лучший ответ Сообщение было отмечено anonymys56964 как решение

Решение

anonymys56964, как вам уже написал Jabbson,
Напишите break между 12 и 13 строками.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2022, 12:50
Помогаю со студенческими работами здесь

Почему если несколько раз вызвать функцию она сработает только один раз
#include <iostream> using namespace std; int main() { int func(); { cout << "AAA"; return 1; ...

Не могу разместить один компонент несколько раз в другом (Корректно работает только один)
Есть компонент кастомного Select, но при попытке поместить 3 таких на страницу с разными параметрами, корректно работает только один: ...

Вывести только те символы, которые встречаются в тексте только один раз
Из заданного текста предложения выберите и выведите на экран только те символы, которые встречаются в нем только один раз (в том порядке, в...

Выбрать только те символы, которые встречаются в тексте только один раз
Из заданного текста предложения выбрать и напечатать только те символы, которые встречаются в нем только один раз ( в том порядке, в...

Напечатать только те символы строки, которые встречаются в ней только один раз
Напечатать только те символы строки которые встречаются в ней только один раз.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru