Python - Использование JSON - хранение и использование данных

Поділитися
Вставка
  • Опубліковано 28 вер 2024
  • Сохранение данных в файлы с помощью JSON, Чтение данных из файлов с помощью JSON
    Буду рад паре баксов, можно даже Канадских :) www.paypal.me/...

КОМЕНТАРІ • 130

  • @veleg
    @veleg 6 років тому +44

    Зовем этого Джейсона))) Просто выпал от этих слов

  • @Hottabov
    @Hottabov 7 років тому +38

    Спасибо, как раз прохожу курсы на Coursera и там дали задание на json, но не объяснили как загонять и читать в файл с помощью json. Похоже, тут объяснение покруче будет, надо будет просмотреть все уроки.

    • @KonstantinAlifanov
      @KonstantinAlifanov 6 років тому +2

      похожая история))

    • @freshmoney9217
      @freshmoney9217 4 роки тому

      Да курсы есть такие кривые, читают по бумажке блядь может сами и умеют но обьяснить не могут

    • @Brandon_Lee_Good
      @Brandon_Lee_Good 4 роки тому

      Также с Курсеры пришёл

    • @germangavrilenko3392
      @germangavrilenko3392 4 роки тому

      @@Brandon_Lee_Good и я...

  • @kavabangaungava
    @kavabangaungava 5 років тому +19

    Читается как объект, а не как строчка какая-нибудь сраная. Автор жжет глаголом!

  • @djdkdkrk
    @djdkdkrk Рік тому +1

    все супер, автор рофлит, а главное понятно, как же приятно это смотреть

  • @resq_netmoon9499
    @resq_netmoon9499 6 років тому +3

    Идеальные уроки объясняешь очень понятно.

  • @МаксимХрамцов-к8щ
    @МаксимХрамцов-к8щ 7 років тому +3

    Cпс за урок, всё изложено отлично.

  • @Xxx_HA7u6ATOP_228_xxX
    @Xxx_HA7u6ATOP_228_xxX 5 років тому +9

    только не называйте файл в котором работаете json а то импортировать библиотеку не сможете как я..

  • @andreipopov2700
    @andreipopov2700 5 років тому +2

    Спасибо за видео - то что надо.
    Пару баксов перекинул ))

    • @ADV-IT
      @ADV-IT  5 років тому +1

      Спасибо!

  • @genater2000
    @genater2000 7 років тому +1

    Вы сказали надо конвертировать в примере user["PlayerName"] потому что это объект(?). Но type(user["PlayerName"]) выдает , то есть строковой класс, и конвертирование не обязательно ?

  • @rob11nzon
    @rob11nzon 6 років тому +3

    Спасибо за хорошее видео, но есть один момент. Лучше принтить строку с применением " ".format(). Не придётся ставить плюсы, переводить все данные в строку да и вообще функционал у формата большой.

    • @lanterchannel1437
      @lanterchannel1437 4 роки тому

      Я попробовал, у меня ошибки выдает (Invalid syntax) , а с плюсом всё работает)

  • @Денис-з3у1ч
    @Денис-з3у1ч 2 місяці тому +1

    Крутой обучающий ролик
    лайк

  • @kirmuass
    @kirmuass 4 роки тому +1

    Приятный голос...
    и легкий

  • @yurakhrolenko3605
    @yurakhrolenko3605 4 роки тому +2

    это не подача материала, это пЭсня!)))
    спасибо, и узнал нового и поржал)

  • @egoyst
    @egoyst 5 років тому +1

    а теперь жахнем джейсоном) Взял фразу на вооружение)

  • @СтепСтеп-п1л
    @СтепСтеп-п1л 3 роки тому +1

    Джейсон крут

  • @ВикторКабанов-ъ6с
    @ВикторКабанов-ъ6с 6 років тому +2

    Code -> Reformat code (CTRL+ALT+L) и не будет ругаться на пробелы ;)

  • @ЄвгенійСінєльніков
    @ЄвгенійСінєльніков 5 років тому +5

    Джейсон_и_Сраная_Строчка(ору)

  • @konstantin3756
    @konstantin3756 7 років тому +3

    Здравствуйте! С интересом смотрю ваши уроки.
    Почему нельзя также в текстовый сохранить без использования JSON?

    • @ADV-IT
      @ADV-IT  7 років тому

      Можно конечно и в обычный текстовый файл, но просто прочитать потом не получится также обратно, особенно если сохраняешь сразу несколько переменных.

    • @antidude1147
      @antidude1147 7 років тому

      ADV-IT Прочитать без Json можно с помощью ast

  • @nickolaym.2666
    @nickolaym.2666 7 років тому +1

    Привет, не находит мордуль JSON. "ModuleNotFoundError: No module named 'json' " Версия Питона 3.5

    • @ADV-IT
      @ADV-IT  7 років тому +1

      JSON утстанавливается по умолчанию при установке самого Питона, поробуй переустанови

  • @Majkirsche
    @Majkirsche 4 роки тому +1

    супер пупер!

  • @onyxf5604
    @onyxf5604 5 років тому

    Отличный урок. Только подскажите, как при следующем запуске программы загружать эти сохранённые данные и редактировать их?

    • @ADV-IT
      @ADV-IT  5 років тому +1

      Ну так в уроке яже показываю как загружать эти данные, загрузил. изменил сделал dump в файл.
      Урок посмотри повнимательней, яже всё показываю.

  • @timmofonnius
    @timmofonnius 4 роки тому

    14:35 player дональд трамп, его штучку увидели :D десять штучек трампа из десяти

  • @MoranKitz
    @MoranKitz 5 років тому

    Подскажите пожалуйста, почему у меня вылетает вот такая ошибка?
    Traceback (most recent call last):
    File "F:/Files of python/lessons/lesson.py", line 24, in
    _json.dumps (myplayers, myfile)
    AttributeError: module '_json' has no attribute 'dump'

    • @ADV-IT
      @ADV-IT  5 років тому

      module _json?
      может без underscore?

    • @MoranKitz
      @MoranKitz 5 років тому

      @@ADV-IT пробовал и без андерскора

    • @ADV-IT
      @ADV-IT  5 років тому

      Посмотри мой пример github.com/adv4000/Python-Lessons/blob/master/Lesson-21-JSON.py

  • @mandz1952
    @mandz1952 4 роки тому

    Можешь помочь? Выдаёт ошибку
    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    • @ADV-IT
      @ADV-IT  4 роки тому

      jsonlint.com/ тебе поможет

    • @mandz1952
      @mandz1952 4 роки тому

      @@ADV-IT Спасибо! Помогло, но вышла другая ошибка: KeyError: 'save_com1'

    • @ADV-IT
      @ADV-IT  4 роки тому +1

      @@mandz1952 мои соболезнования

  • @antonMurzilka
    @antonMurzilka 6 років тому

    Сложно ли найти первую работу после освоения python Django HTML css PostgreSQL?

    • @ADV-IT
      @ADV-IT  6 років тому

      Да. Всегда сложно найти первую работу, не важно сколько при этом выучил.

  • @СергейКиян-ш6у
    @СергейКиян-ш6у 7 років тому

    Не понимаю почему, но у меня данный код не работает, не может сериализовать.
    import json
    filename = "users.txt"
    user1 = {
    'Name': 'Edward',
    'PasswordHash': 'abcd1234',
    'Position': 'Developer'
    }
    with open(filename, mode='w+', encoding='UTF-8') as file:
    json.dump(file, user1)
    Выдаёт: TypeError: Object of type 'TextIOWrapper' is not JSON serializable
    Весть StackOverflow облазил, не мог понять в чем дело.

    • @ADV-IT
      @ADV-IT  7 років тому +2

      У тебя ощибка в
      json.dump(file, user1)
      Поменяй местами на
      json.dump(user1, file)

    • @СергейКиян-ш6у
      @СергейКиян-ш6у 7 років тому +2

      Семен, семеныч((((
      Спасибо большое.

  • @indev4056
    @indev4056 5 років тому

    У меня при попытке вывести данные пишет "обьект 'dict' не вызывается". что делать?

    • @ADV-IT
      @ADV-IT  5 років тому +2

      Молится Богу!

  • @thesergeymen2632
    @thesergeymen2632 6 років тому

    Есть один вопрос-придирка:
    Почему всё не записать в одну переменную? (players = { "Hillory":{...}, "Tpump":{...}) это было бы куда выгоднее, ну а так видос норм)

    • @ADV-IT
      @ADV-IT  6 років тому

      The Sergey Men можно и так.

    • @namesurname7121
      @namesurname7121 5 років тому +1

      нахера. это неудобно и менее читабельно.

  • @ИгорьЛавренчук-ы7п

    а где json то в результате? структуры нет,тегов нет..хрень.

  • @ЕвгенийБондаренко-с5е

    надо было в конце файла написать json

  • @_meta_data_9992
    @_meta_data_9992 4 роки тому

    От простого к сложному: ua-cam.com/video/w9UuJprl-Sw/v-deo.html

  • @user-sg5sc3xw4p
    @user-sg5sc3xw4p 6 років тому

    Короче суть в том что мне нужно сделать вот такое меню на питоне
    Войти1
    Зарегестрироватся2
    Зайти как админ.3
    ==========================================================================
    что бы при нажатии на клави 1 юзер мог зайти на сайт
    при нажатии 2 он мог зарегестрироватся и войти на сайт
    и 3 это админка
    ==========================================================================
    Меню пользователя:
    • Вывести все товары на экран 1
    • Вывести только ноутбуки/мат.платы/процессор/оперативки/видюхи 2
    • Отсортировать любой из выбранных товаров по цене 3
    • Вывести только те товары, которые больше N 4
    • Вывести только те товары, которые меньше N 5
    • Вывести только те товары, которые больше N меньше M 6
    =========================================================
    а в меню админа должно быть
    Админ меню:
    • Просмотреть список любой из сущности 1
    • Добавить удалить пользователя 2
    • Добавить удалить ноутбук 3
    • Добавить удалить мать 4
    • Добавить удалить процессор 5
    • Добавить удалить оперативную память 6
    • Добавить удалить видюху 7
    Пожалуйста помогите
    напишите я хочу разобрать как это делать очень нужно

    • @ADV-IT
      @ADV-IT  6 років тому

      Может не JSON в этом случае, а базой данных надо пользоваться?

    • @user-sg5sc3xw4p
      @user-sg5sc3xw4p 6 років тому

      да?

    • @ADV-IT
      @ADV-IT  6 років тому

      Посмотри урок работа с Базами Данных, не так все сложно получится.
      ua-cam.com/video/C2TrKgd7sME/v-deo.html

  • @МаксимВладимирович-я7ю

    в итоге победил Трамп, а Джейсон Стетхем не причем.

  • @Insinghtful
    @Insinghtful 7 років тому +28

    вы первый кто так все понятно объясняете, и это факт!
    хорошо бы и уроки по автотестам для тестировщиков(pytest) именно от Вас.

    • @cultofsogga5863
      @cultofsogga5863 5 років тому

      Наверно на английском всё понимал сначала...

  • @ГлебЧет
    @ГлебЧет 7 років тому +13

    12:12 Перфекционизм доминирует)))

  • @МаксимПархомчук-д5и
    @МаксимПархомчук-д5и 7 років тому +6

    Не засыпается под такие уроки и не нужно много терпения, все живенько, простым языком) "не то что строчка какая-то сраная")))

  • @lith1um60
    @lith1um60 6 років тому +8

    Со строчки сраной орнул)

  • @HattabMedia
    @HattabMedia 3 роки тому +3

    Чтоб не писать 3 строчки принта можно добавить еще один цикл:
    for user in json_data:
    print("Player name is " + str(user["playerName"]))
    print("Player score is: " + str(user["Score"]))
    for num, award in enumerate(user["awards"], 1):
    print(str(user["playerName"]) + " award #" + str(num) + " " + str(award))

  • @k1ber91
    @k1ber91 4 роки тому +14

    "JSON это такая хрень.." - за такие моменты люблю этот канал. Спасибо за уроки.

  • @foxbrest
    @foxbrest 7 років тому +5

    Уроки замечательные! Может когда нибудь пару слов о тестировании в Python расскажете?
    Тема сложная...а Вы очень хорошо всё обьясняете.

  • @veleg
    @veleg 6 років тому +4

    Просмотрел весь курс. Спасибо автору, то что нужно для освоения. Это уже третий курс + книги, в совокупности прям нереально хапнул.
    Сейчас очень актуальна тема - "Телеграм боты", есть несколько спикеров по Python на youtube, но думаю, если создадите курс именно Вы (ADV-IT
    ), то курс будет пользоваться хорошей популярностью.

    • @ADV-IT
      @ADV-IT  6 років тому +2

      Я в этот вообще не понимаю, и разбиратся не в приоритете.
      Я в DevOps и AWS новое учу.

    • @veleg
      @veleg 6 років тому

      ADV-IT Понял. Так, идейку подкинул для канала.

  • @romanironov463
    @romanironov463 3 роки тому +1

    Читается как объекты, а не как строчка странная :DDD

  • @ФдрФфф
    @ФдрФфф Рік тому +1

    Главное правильно позвать Джейсона:)

  • @user-qc4km8zm3n
    @user-qc4km8zm3n 3 роки тому +1

    Добрые люди, кто - нибудь сталкивался (partially initialized module 'json' has no attribute 'dump' (most likely due to a circular import) честное слово, перепроверил, писал как у автора.

    • @ADV-IT
      @ADV-IT  3 роки тому

      Посмотри как у меня повнимательней может, вот все исходники
      github.com/adv4000/Python-Lessons/tree/master/For-Beginners

    • @user-qc4km8zm3n
      @user-qc4km8zm3n 3 роки тому +2

      @@ADV-IT да я дебил, кто прочитает на будущее - НЕ называйте файлы (просто именем json.py иначе - нервы ( кто сдает на Cisco успехов, автору респект)

  • @ББек-н2м
    @ББек-н2м 2 роки тому +2

    Чувак, не знаю, буду я программистом или нет. Но я бы с тобой затусил - это однозначно. Очень ржачно смотреть. Иногда из-за приколов твоих дальше просто не могу смотреть. Ты крут)

  • @sir_incognito
    @sir_incognito Рік тому +1

    Джейсон Стетхем)

  • @Ax3L2k
    @Ax3L2k 4 роки тому +2

    каеф

  • @SELYAVINNICK
    @SELYAVINNICK 3 роки тому +1

    красапет четко

  • @nokia_n-gage
    @nokia_n-gage 2 роки тому +1

    Спасибо!

  • @ДмитрийБо-о3л
    @ДмитрийБо-о3л 7 років тому +3

    имеет смысл добавить как дописывать в этот файл. и как считывать когда файл большой и надо не весь его в память втаскивать сразу, а читать частями. Это был бы более полный пример.

    • @vitamalyar3792
      @vitamalyar3792 5 років тому

      Для дозапись в конец нужно файл открыть в ружиме mode='a'

  • @Yurbanji
    @Yurbanji 5 років тому +3

    Классный урок! Все понятно!

  • @РасулГумаров
    @РасулГумаров 3 роки тому +1

    никак не мог тебя найти, написал в поиск: Питон JSOn Колян. И вот, твоё видео вышло!

  • @ja_Urainetc
    @ja_Urainetc 7 років тому +2

    1. сколько можно оброблять даньіх етим методом?
    тоесть можно сохранять например 1000 или 5000 словарей (Players)?
    не будет ето дело тормозить?
    2. Можно ли из файла вьібирать (искать) только нужньіе записи (словари)?
    оброблять их и записьівать обратно в файл ?
    тоесть такая себе текстовая БД или лутше для етих потреб использовать sqlite3, или sql ?

    • @ADV-IT
      @ADV-IT  7 років тому

      JSON файл это как NoSQL база данных, так что можно из неё вытаскивать только то что тебе нужно, а вот насчет тормозить, таже не знаю, надо пробовать stress test

    • @ja_Urainetc
      @ja_Urainetc 7 років тому

      а как искать в JSON файле только нужньіе записи (словари)?
      оброблять их и записьівать обратно в файл ?

    • @pygramming6319
      @pygramming6319 7 років тому +2

      Если нужно шифрование (предметы) - MySQL, а если просто настройки программы (настройки графики, список избранных серверов) - JSON, т.к. он не шифрует данные и полегче немного.
      p.s. Я не написав на українский тому, що не дуже гарно знаю її. Пробачай.

  • @undertheburnttrees5780
    @undertheburnttrees5780 4 роки тому

    А json актуален сегодня?

    • @ADV-IT
      @ADV-IT  4 роки тому +1

      Конечно

  • @ДмитрийВиноградов-ч9б

    JSONom жахнуть! )))

  • @АнтонДрагомиров
    @АнтонДрагомиров 6 років тому +1

    Отличный урок!!!!!!
    ааааааа спасибооооо!!!!
    Вы очень помогли!!!!)))

    • @ADV-IT
      @ADV-IT  6 років тому

      Рад помоч

  • @luibar5041
    @luibar5041 5 років тому

    спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!это лучший урок который видела. по этому

  • @thesergeymen2632
    @thesergeymen2632 6 років тому

    Привет
    Хотел кое-что спросить, вот у меня есть код:
    #JSON на перезапись
    import json
    my_json = json.load(open('testJSON.json', 'r'))
    my_json['name'] = 'Pasha'
    json.dump(my_json, open('testJSON.json', 'w'))
    Может ли он считаться правильным? Код работает, да и по идее функции автоматом файл закрывают, но есть сомнения, что код не правильный(типо файлы открываю и не закрываю)

    • @ADV-IT
      @ADV-IT  6 років тому +2

      Открывать файл можно много раз? Вот из книги:
      The same file can be opened more than once in the same program (or in different programs). Each instance of the open file has its own file pointer that can be manipulated independently
      Закрой файл в самом конце программы на всякий случай.

  • @alexmahmutov6787
    @alexmahmutov6787 7 років тому

    А как получить json строку из объекта/массива, не сохраняя ее в файл?

  • @alonasorochynska5881
    @alonasorochynska5881 5 років тому +1

    Автор, ты крут! Объясняешь супер, но от сленга уши крутятся в трубочку)))

    • @ADV-IT
      @ADV-IT  5 років тому +5

      Спасибо, другого русского уже не знаю :)

  • @amorv7734
    @amorv7734 4 роки тому

    Для питона минимальные требование компа какие должны быть ?

    • @ADV-IT
      @ADV-IT  4 роки тому +1

      Да любые, на старом хламе все работает

  • @Bergen2
    @Bergen2 5 років тому

    откуда названия myfile и filename? рандомные?

    • @ADV-IT
      @ADV-IT  5 років тому

      я придумал

  • @NMelis
    @NMelis 7 років тому

    а как дописать?

  • @kreved52
    @kreved52 5 років тому

    В чем разница с pickle?

    • @ADV-IT
      @ADV-IT  5 років тому +1

      docs.python.org/3/library/pickle.html#comparison-with-json

  • @monkdok
    @monkdok 5 років тому

    Круто!
    А какие приимущества у JSON перед SHELVE?

    • @ADV-IT
      @ADV-IT  5 років тому

      Низнаю

    • @monkdok
      @monkdok 5 років тому

      @@ADV-IT а в вашей практике вы что чаще используете для хранения данных такого рода?

    • @ADV-IT
      @ADV-IT  5 років тому +2

      Только JSON

  • @ivanaaa6049
    @ivanaaa6049 5 років тому +1

    Не все данные сохраняются в JSON (о чем автор молчит):
    1. tuple будут автоматически преобразован в list при сохранении / восстановлении.
    2.Ключи для dict должны быть примитивных типов (в одной из книг написано, что только строковыми)- иначе выбрасывается исключение.
    3. Вообще не понятно, как этот формат отображает set (нигде не написано).
    4. Проблема для сохранения объектов с состоянием.
    Так что это не универсальный инструмент, и налагает на код большое количество ограничений, если вы хотите сохранять объекты.

  • @tihon4979
    @tihon4979 5 років тому +1

    Уроки классные, но язык опережает мысль, и когда смотришь минут тридцать - это начинает за#&ыв@ть. Просьба не спешить. А так весело местами.

  • @orangasus
    @orangasus 4 роки тому

    Ты как смирительную рубашку снял?

  • @user-sg5sc3xw4p
    @user-sg5sc3xw4p 6 років тому

    Мистер ADV IT я сделал менюшку админа и логина но я не могу понять как мне сделать что бы при нажатии клавиши 1 открывалась регестрация а при 2 админка

    • @user-sg5sc3xw4p
      @user-sg5sc3xw4p 6 років тому

      Я чет не понял базу данных

    • @ADV-IT
      @ADV-IT  6 років тому +1

      chuvaknajal = input("Vvedite 1 - Registaciya,ili 2 - Adminka :")
      if chuvaknajal ==1:
      registaciya()
      if chuvaknajal ==2:
      adminka()
      Функции registraciya() и adminka() сам напиши как небе нужно.

    • @user-sg5sc3xw4p
      @user-sg5sc3xw4p 6 років тому

      мда я думал будет сложнее

    • @user-sg5sc3xw4p
      @user-sg5sc3xw4p 6 років тому

      спс

    • @user-sg5sc3xw4p
      @user-sg5sc3xw4p 6 років тому

      import json
      chuvaknajal = input("Vvedite 1 - Registaciya,ili 2 - Adminka :")
      if chuvaknajal == 1:
      registr()
      if chuvaknajal == 2:
      adminka()
      def registr():
      filename = "users_save.txt"
      myfile = open(filename, mode='w', encoding='Latin-1')
      username = input("Введите логин")
      password = input("Введите пароль")
      print("Пользователь сохранен")
      registration= []
      registration.append(username)
      registration.append(password)
      json.dump(registration,myfile)
      myfile.close()
      У меня чет не работает

  • @wordpreslabs
    @wordpreslabs 6 років тому +4

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

  • @НиколайПшеничный-г5щ
    @НиколайПшеничный-г5щ 6 років тому +1

    Квадратные скобки это список, не массив

    • @alonasorochynska5881
      @alonasorochynska5881 5 років тому

      Почему-то в интернете список часто называют массивом в Питоне