key = "2000000004"
with open("file.json","r") as inp, open("temp.json", "w") as out:
for line in inp:
linej=json.loads(line)
if key in linej:
linej[key]["amv"] = False
line = json.dumps(linej)+"\n"
out.write(line)
os.remove("file.json")
os.rename("temp.json","file.json")
ИМХО текст для того и сделан чтобы такие вот со своими PyAutoGui не лезли, нарушая правила. Автор хочет где-то сжульничать. Направил бы свои старания на распознавание дорожных знаков и дорожных ситуаций - чем заниматься автоматизацией для жуликов.
Файлы это отдельная таблица - у каждого файла есть groupid и studentid - чтобы знать кто его загрузил и для какой он группы, храниться они могут на диске в виде файлов - в таблице храним лишь путь к нему. Можно даже в отдельных папках для группы - чтобы без таблиц можно было понять чей он.
Какой ужас!
Вам нужно прочитать про хранение данных какой либо материал.
У вас студенты - это одна таблица, группы это вторая таблица. Староста это такой же студент но у него поле "староста"=True . Каждый студент имеет поле groupid которое указывает на его группу - и не надо делать несколько таблиц.
А потом читать про работу с SQLAlcemy. Каждый класс представляет класс данных: студент, группа - он один на всю таблицу, каждая строка таблицы это экземпляр класса.
Я как то писал к програмке на C# вебинтерфейс и узнал что в .Net 4 нет встроенных функций и библиотек для парсинга и генерации JSON - нужно какую то стороннюю либу прикручивать. Плюнул и написал сериализатор в коде. И во всех классах которые нужно выгружать - тоже мини сериализаторы через формат.
Как вариант еще не сразу писать в базу а создать SQL файл, может даже его разбить на куски.
Также можно попробовать загонять всю компанию в одну транзакцию а то у вас там autocommit как я понял - и куча маленьких запросиков на каждый сервис - это не эффективно.
Я исправил, не та функция оказалась. На ней нужно фильр получше делать так как там и другие события идут.
Вообще могли бы и сами попробовать - рыться в документации полезно.
P.S. Вообще я хотел изучить всю документацию, но потом стало лень и вот изучаю с вопросами по маленьку)))
Если нужно тыкать кнопки - как это бы делал пользователь - то нужно эмулировать браузер. А если по простому - каждая кнопка инициирует запрос с какими либо параметрами - вот и из питона отправлять такой же запрос.
Запрсы можно увидеть на вкладке Network консоли разработчика в браузере( F12). В любом случае вначале надо смотреть сайт в браузере.
Я думал запускать в песочнице чтобы отследить цепочку взлома - 192.168.1.1 что это за внутренний адрес?
так можно искать 0-Day уязвимости в момент попытки использования.