пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ bgp
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Команда ping - это сетевой инструмент для проверки работоспособности удаленной системы. Другими словами, команда определяет, доступен ли определенный IP-адрес или хост. Ping использует протокол сетевого уровня, называемый Internet Control Message Protocol (ICMP), и доступен во всех операционных системах.
С другой стороны, номера портов принадлежат протоколам транспортного уровня, таким как TCP и UDP. Номера портов помогают определить, куда пересылается Интернет или другое сетевое сообщение, когда оно приходит.
В этом руководстве вы узнаете, как проверить связь с портом в Windows и Linux с помощью различных инструментов.
Можно ли пропинговать конкретный порт?
Сетевые устройства используют протокол ICMP для отправки сообщений об ошибках и информации о том, успешна ли связь с IP-адресом. ICMP отличается от транспортных протоколов, поскольку ICMP не используется для обмена данными между системами.
Ping использует пакеты ICMP, а ICMP не использует номера портов, что означает, что порт не может быть опрошен. Однако мы можем использовать ping с аналогичным намерением - чтобы проверить, открыт порт или нет.
Некоторые сетевые инструменты и утилиты могут имитировать попытку установить соединение с определенным портом и ждать ответа от целевого хоста. Если есть ответ, целевой порт открыт. В противном случае целевой порт закрывается или хост не может принять соединение, потому что нет службы, настроенной для прослушивания подключений на этом порту.
Как пропинговать определенный порт в Linux?
Вы можете использовать три инструмента для проверки связи порта в Linux:
Telnet
Netcat (NC)
Network Mapper (nmap)
Пинг определенного порта с помощью Telnet
Telnet - это протокол, используемый для интерактивной связи с целевым хостом через соединение виртуального терминала.
1. Чтобы проверить, установлен ли уже telnet, откройте окно терминала и введите:
telnet
2. Если telnet не установлен, установите его с помощью следующей команды
Для CentOS/Fedora: yum -y install telnet
Для Ubuntu: sudo apt install telnet
3. Чтобы пропинговать порт с помощью telnet, введите в терминале следующую команду:
telnet [address] [port_number]
Где [address] - это домен или IP-адрес хоста, а [port_number] - это порт, который вы хотите проверить.
telnet google.com 443
Если порт открыт, telnet устанавливает соединение. В противном случае он указывает на сбой.
4. Чтобы выйти из telnet, нажмите Ctrl +] и введите q.
Пинг определенного порта с помощью Netcat
Netcat (nc) позволяет устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их. Этот инструмент командной строки может выполнять множество сетевых операций.
1. Чтобы проверить, установлен ли netcat:
Для Debian, Ubuntu и Mint: введите netcat -h
Для Fedora, Red Hat Enterprise Linux и CentOS: ncat -h
2. Если netcat не установлен, выполните в терминале следующую команду:
sudo apt install netcat
3. Чтобы пропинговать порт с помощью netcat, введите следующее:
nc -vz [address] [port_number]
Выходные данные информируют пользователя об успешном подключении к указанному порту. В случае успеха - порт открыт.
Пинг определенного порта с помощью Nmap
Nmap - это сетевой инструмент, используемый для сканирования уязвимостей и обнаружения сети. Утилита также полезна для поиска открытых портов и обнаружения угроз безопасности.
1. Убедитесь, что у вас установлен Nmap, введя nmap -version в терминал.
Если Nmap установлен, вывод информирует пользователя о версии приложения и платформе, на которой он работает.
2. Если в вашей системе нет Nmap, введите следующую команду:
Для CentOS или RHEL Linux: sudo yum install nmap
Для Ubuntu или Debian Linux: sudo apt install nmap
3. После установки Nmap в системе используйте следующую команду для проверки связи определенного порта:
nmap -p [port_number] [address]
Выходные данные информируют пользователя о состоянии порта и типе службы, задержке и времени, прошедшем до завершения задачи.
4. Чтобы проверить связь с более чем одним портом, введите nmap -p [number-range] [address].
Синтаксис [number-range]- это диапазон номеров портов, которые вы хотите пропинговать, разделенные дефисом. Например:
nmap -p 88-93 google.com
Как пропинговать определенный порт в Windows?
Проверить связь с портом в Windows можно двумя способами:
Telnet
PowerShell
Пинг определенного порта с помощью Telnet
Перед использованием telnet убедитесь, что он активирован:
Откройте панель управления.
Щелкните «Программы», а затем «Программы и компоненты».
Выберите «Включение или отключение компонентов Windows».
Найдите клиент Telnet и установите флажок. Щелкните ОК.
Готово! Вы активировали клиент Telnet в системе.
После завершения активации можно пропинговать порт с помощью telnet. Для этого:
1. Введите cmd в поиске в меню «Пуск». Щелкните на приложение Командная строка.
2. В окне командной строки введите
telnet [address] [port_number]
Где [address] - это домен или IP-адрес хоста, а [port_number] - это порт, который вы хотите проверить.
Выходные данные позволяют узнать, открыт ли порт и доступен ли он, иначе отображается сообщение об ошибке подключения.
Пинг определенного порта с помощью PowerShell
PowerShell - это текстовая оболочка, которая по умолчанию поставляется с Windows.
Чтобы проверить связь с портом с помощью PowerShell, выполните следующие действия:
1. Введите PowerShell в поиске в меню «Пуск». Щелкните приложение Windows PowerShell.
2. В окне командной строке PowerShell введите:
Test-NetConnection [address] -p [port_number]
Если порт открыт и соединение прошло успешно, проверка TCP прошла успешно. В противном случае появится предупреждающее сообщение о том, что TCP-соединение не удалось.
Заключение
Теперь вы знаете, как выполнить эхо-запрос и проверить, открыт ли порт, с помощью нескольких сетевых инструментов и утилит в Linux и Windows.
Неважно, новичок вы или опытный разработчик программного обеспечение, вы так или иначе допускаете ошибки при написании кода.
Все мы делаем такие ошибки, поскольку мы не можем знать абсолютно все о написании кода. Все мы люди, и все мы делаем ошибки.
Или вы знаете, как получить суперсилу? Ну и ладненько, не заморачивайтесь.
Все, что мы можем, это изучать себя, свои инструменты и свои ошибки для того, чтобы найти решения, которые бы помогли нам уменьшить количество создаваемых нами ошибок.
Как бороться с ошибками?
Есть три основных способа, как бороться с ошибками:
«Предварительная отладка»
: устранение ошибок до того, как они будут сделаны.
Отладка
: выявление, устранение и удаление ошибок уже после того, как они будут обнаружены.
Пост-отладка
: предположение непредвиденных или неизвестных ошибок.
Давайте рассмотрим каждый из этих способов в отдельности.
Что такое «предварительная отладка»?
Уже покойный специалист в области теории вычислительных машин и систем Эдсгер Видбе Дейкстра сказал:
«Если отладка – процесс удаления ошибок, то программирование должно быть процессом их внесения.»
Если мы вносим ошибки в процессе написания кода, то это значит, что нам нужно поработать над собой, чтобы уменьшить их количество. Я называю этот процесс самообучения «предварительной отладкой».
Вот определение:
«[Отладка] – это процесс выявления и устранение ошибок в компьютерном аппаратном или программном обеспечении.»
Что? И это все, что мы должны сделать?
Это определение навело меня на одну мысль. Я уверен, что многие разработчики программного обеспечения действуют с опережением событий в том, что касается отладки. Они совершенствуют свои инструменты и прокачивают свои собственные навыки для того, чтобы совершать как можно меньше ошибок, особенно самых распространенных.
Вот несколько способов, которые могут вам в этом помочь:
Напишите спецификацию программы.
Изучите свои инструменты так, чтобы действительно понимать, как они работают.
Научитесь безошибочно печатать.
Ознакомьтесь с сообщениями об ошибках и о возможных способах их устранения.
В обязательном порядке следите за тем, чтобы ваши настройки были постоянными для большей части инструментов, которые вы используете.
И все такое прочее!
Это определение не отражает все эти аспекты процесса отладки, и это заставило меня задуматься: «Как можно! Кто-то должен делиться всем, что делают разработчики программного обеспечения для того, чтобы сократить количество ошибок.»
Конечно, это определение вполне подходит для понятия отладки, но оно принижает все остальные действия, которые предпринимают разработчики ПО для того, чтобы сократить количество создаваемых ошибок. Итак, давайте взглянем на них сейчас.
?
Изучите основы инструментов, с которыми вы часто работаете
Очень важно изучить основы любых инструментов, с которыми вы частенько имеет дело, так как это может помочь вам избежать некоторых ошибок, которые вы обычно можете допускать при написании кода.
Конечно, нельзя избежать ошибок на сто процентов, но вы можете исключить хотя бы некоторые из них, если вы будете иметь солидный багаж знаний об используемых инструментах.
Например, многие пользователи JavaScript никак не могут запомнить, что же возвращает функция
splice()
. А некоторые не могут запомнить, чем же отличается метод массивов
map()
от другого метода
forEach()
. И вообще, есть ли эта разница? Проехали! Временами мы все грешим в этом плане.
Если вы не используете JavaScript, то просто возьмите какой-нибудь встроенный метод или функцию из языка, который вы используете, и спросите себя:
Какой аргумент принимает эта функция? Что она возвращает? Что будет, если ей будет передан недопустимый аргумент?
Если вы зададитесь такого рода вопросами в отношении каждой такой встроенной функции (или встроенном методе), которую вы используете чаще всего, то сможете узнать довольно много и будете в курсе того, как она работает.
Таким образом вы сможете внимательно следить за обновлениями в ваших любимых инструментах, особенно если у вас нет времени на то, чтобы много читать.
?
Прежде чем писать код, составьте план
Программирование – это своего рода спорт, в котором используется метод проб и ошибок. Вы работаете над собой, пока не добьетесь нужного результата.
Многие начинающие разработчики ПО не до конца понимают программы, которые они пишут, а некоторые из них даже не пытаются понять сообщения об ошибках, а просто ищут их в Гугле.
И вот, всем начинает казаться, что программирование – это «код, код, код, поиск, отладка».
Но следует хорошо понимать, что ты делаешь, поэтому кратко запишите следующее:
Что мы хотим получить в качестве входных данных, а также структуру и особенности этих входных данных.
Что мы собираемся делать с входными данными.
Что мы хотим вернуть или сделать в конце в отношении входных данных или прочее.
Что мы должны сделать, если мы не получим нужные входные данные.
Если вкратце, то составление плана относительно входных данных, процессов и выходных данных функции или программы не просто помогает сократить количество совершаемых ошибок, но и помогает писать эффективные тесты.
?
Ознакомьтесь с самыми распространенными сообщениями об ошибках
Как правило, исправить ошибку довольно легко, если вы знаете, что это за ошибка.
Именно поэтому очень важно потратить свое время на то, чтобы изучить некоторые распространенные ошибки и способы их устранения. Давайте поговорим о них:
1. Ошибки в синтаксисе
У каждого языка программирования есть свои собственные правила, а некоторые разработчики частенько их нарушают.
Языки программирования очень требовательны в том, что касается правил, и каждый раз, когда эти правила нарушаются, они выдают ошибки.
Представьте, например, что вы пропускаете круглые скобки функции или метода:
function {}
Появится ошибка.
Если вы ознакомитесь с сообщением о синтаксической ошибке и тем, как ее можно исправить, это даст вам преимущество, когда вы будете производить отладку.
Лично для себя я заметил, что в большей части такого рода ошибок упоминаются некоторые ключевые слова, с помощью которых вы можете определить, где конкретно произошла ошибка.
let school = {
name: "Harvard",
location: "Heaven On Earth", admit: function() { return "weeew! You are admitted" }
}
console.log(school.names); // undefined
«Undefined», возвращенное функцией, говорит нам о том, что объект или свойство, к которому мы пытаемся обратиться, не доступны. Мы вполне можем разобраться, в чем же проблема, если более внимательно посмотрим на сообщение об ошибке.
Давайте пойдем чуть дальше.
console.log(school.locations.address); // Uncaught TypeError: Cannot read property 'address' of undefined.
Если вы внимательно посмотрите на сообщение об ошибке, то без проблем сможете понять, где произошла ошибка.
Сообщение об ошибке, приведенное выше, («
Cannot read property 'address' of undefined.
») говорит о том, что address – это свойство, и это свойство, как известно, принадлежит объекту (в JavaScript). Но в данном случае объект не определен (undefined).
Чем больше вы практикуетесь в написании кода, тем меньше синтаксических ошибок вы будете делать. Более того, вы можете использовать редакторы кода, линтеры или IDE, которые будут подсвечивать ваши синтаксические ошибки. Эти инструменты могут хорошо вам помочь.
Вы можете ознакомиться вот с этими линтерами, чтобы понять, какой вам больше всего подходит:
Для JavaScript – ESLint
Для Python – PyLint
Для Java – Checkstyle
Для PHP – PHP_CodeSniffer
Кроме того, вы можете настроить большую часть популярных редакторов кода, например, VSCode, для того, что использовать упомянутые выше линтеры.
2. Логические/семантические ошибки
Что касается логических ошибок, то исправить их не так просто, потому что вам кажется, что ошибки нет, но почему-то вы все равно не получаете нужного результата.
В частности, можно легко подтвердить наличие такой ошибки, запустив в консоли браузера код, приведенный ниже.
?prompt("enter number") + 3;
Вы хотите, чтобы в качестве выходных данных вернулось число, а вернется строка. Проще говоря, вы получите не то, что хотели.
Вы вполне можете справиться с логическими ошибками, если будете составлять план перед написанием кода и будете понимать основы языка, на котором вы пишете. Но это будет работать только в том случае, если вы понимаете, какие требования к программе вам предъявляются.
3. Ошибки компиляции
Ваша программа может не скомпилироваться, если вы вдруг пренебрегли некоторыми правилами, которые важны для компилятора. В таком случае ваша программа действительно может просто не скомпилироваться.
Например, если вы запишете строку без обычных кавычек, то есть
const name = Ayobami
, то вы получите ошибку компиляции. Все потому, что строка должна быть заключена в кавычки. В связи с этим код компилироваться не будет.
Это чем-то похоже на синтаксические ошибки, и чем больше вы практикуетесь в написании кода, тем реже вы будете получать ошибки компиляции.
Вы можете стать более продуктивным и сократить количество таких ошибок, постоянно компилируя и тестируя свой код.
4. Ошибки нехватки ресурсов
Может случиться так, что ваша программа превысит лимит памяти или исчерпает все доступные ресурсы. В таком случае это может привести к тому, что приложение выйдет из строя или будет неправильно функционировать.
Ниже приведен код, который является реальным примером возникновения ошибок нехватки ресурсов.
function factorial(num) {
var result = 1;
for(var i = num; i > 0; i--){
result = num * factorial(num-1);
}
return result;
}
factorial(5);
factorial(10);
factorial(20);
factorial(0);
Функция
factorial()
«ломает» или замедляет работу браузера, так как стековое пространство, то есть память, которая была выделена браузером для цепочки вызовов функции, исчерпана. В данном случае это ошибка нехватки ресурсов, так как она возникает в результате того, то вся выделенная память была полностью использована.
5. Ошибки интерфейса
Иногда происходит так, что мы разрабатывает программные API для того, чтобы их использовали определенным образом, но некоторые пользователи используют их не так, как положено и вызывают таким образом ошибки. Такие ошибки называются ошибками интерфейса.
Допустим, что метод
go(string)
ждет, что ему передадут строку, но мы вместо этого вызываем его, передав ему число. Если создатель программы не предвидит такую ситуацию и не контролирует то, как программа будет себя вести в таком случае, это приведет к ошибке.
Большая часть вещей в программном обеспечении определяется стандартами. Если пользователи не соблюдают стандарты, которые вы установили, вы должны выдать им сообщения об ошибках или рекомендации для того, чтобы они могли понять, что они неправильно используют приложение.
В таких ситуациях полезно документировать ваши API.
?
Убедитесь, что ваши настройки подходят для ваших инструментов
Очень важно, чтобы ваши настройки подходили для ваших инструментов. Бывают ситуации, когда ваше приложение не может работать с вашей ОС, так как для него требуется более новая ее версия или какое-то определенное программное обеспечение.
Например, WampServer может неправильно работать в ОС Windows, если на компьютере не будет некоторых сред выполнения Microsoft VC. Тоже самое может быть и в Linux, и в macOS.
Все, что вам нужно, это удостовериться в том, что ваши настройки подходят для всего, с чем вы работаете.
?
Будьте однозначны в том, что касается функций в вашей программе
«В математике, информатике и физике детерминированная система – это система, в которой никакая случайность не участвует в развитии будущих состояний системы.
Детерминированная модель, таким образом, всегда будет давать одинаковый результат из заданного начального условия или начального состояния,» -
источник
.
Теперь возникает вопрос, как же нам создать детерминированную программу? Вы должны четко определить, какой тип данных в вашей программе будет считаться допустимым, и отклонять любые данные, не соответствующие этому типу.
Если вкратце, то вам нужно принимать нужные данные и отклонять ненужные или уведомлять пользователей о том, какие данные нужны.
?
Не используйте, если не понимаете
Один из самых лучших способов сократить количество ошибок – использовать только те подходы, методы и классы, которые вы понимаете. Если вам приходится использовать какой-либо подход или стиль, который вы не понимаете, изучите его как следует и убедитесь в том, что вы знаете, что вы будете делать, прежде чем это делать.
Если вы будете использовать вещи, которые вы не понимаете, то с легкостью допустите ненужные ошибки в вашем приложении.
?
Научитесь безошибочно печатать
Многие недооценивают безошибочность набора текста. А все потому, что программирование – это больше про процесс мышления, а не про набор текста. Однако аккуратность при наборе текста может помочь вам избежать синтаксических ошибок, ошибок при наборе текста и опечаток.
Довольно много ошибок в программировании связаны именно с обычными опечатками. Ваша аккуратность при наборе текста даст вам преимущество и позволит сократить количество ошибок.
?
Наблюдайте за другими разработчиками, как они производят отладку
Есть еще один любопытный способ, как вы можете улучшить свои навыки отладки. Понаблюдайте за другими разработчиками в процессе того, как они отлаживают свои программы. Таким образом, вы можете взглянуть на процесс отладки через призму других разработчиков и перенять какие-то другие способы отладки.
Всегда есть какие-то инструменты или подходы, о которых мы просто не знаем или не применяем. Понаблюдав за другими, вы можете открыть для себя какие-то новые инструменты или подходы.
Даже если вы о них уже знаете, вы можете не знать, для чего и как их применять.
Посмотрев, как другие используют эти инструменты или подходы, вы сами можете захотеть попробовать их в работе еще раз, и, возможно, в итоге прокачать свои навыки.
Что такое отладка?
Отладки – это основная составляющая программирования, так как именно этот процесс занимает большую часть вашего времени, когда вы пишете код.
Отладка состоит из трех основных этапов:
Поиск ошибок.
Анализ и выявление причин возникновения ошибок.
Исправление или устранение ошибок.
Как найти ошибку?
Поиск ошибок должен начинаться с осмысления сообщений об ошибках, которые вы видите.
Нет нужды говорить о том, что сообщение об ошибке – это и есть указатель на эту самую ошибку. Если вы понимаете, на что указывает это сообщение, то сможете найти, где эта ошибка произошла.
Однако некоторые ошибки могут заставить вас попотеть, поскольку могут не иметь четко сформулированных сообщений. Мы просто можем не получить того результата, который мы хотели.
Для того, чтобы найти ошибки, вам нужно сделать следующее:
Четко сформулируйте то, что вы ожидаете от программы.
Проверьте результаты, которые вы получили.
Сравните свои ожидания и фактический результат для того, чтобы понять, что вы упустили.
Для того, чтобы быстро найти ошибки, вы можете воспользоваться отладчиком или каким-то другим полезным инструментом.
К тому же вы можете проверить различные части вашего кода относительно ваших предположений и найти несостыковку методом проб и ошибок.
Как понять, почему появилась ошибка?
После того, как вы найдете ошибку, вам нужно понять, почему код ведет себя не так, как предполагалось. Это поможет вам построить эффективную систему.
На самом деле многие разработчики просто гуглят и использует ответы из StackOverflow.
В отдельных случаях это не так уж и плохо, но все-таки желательно понять причину возникновения ошибки и почему то или иное решение этой проблемы вам помогло.
Понимание причины возникновения ошибки – это важный шаг на пути ее исправления.
Как исправить или устранить ошибку?
После того, как вы нашли ошибку и поняли, почему она появилась, вы должны исправить ее. Иногда, стоит вам только понять, в чем же состоит ошибка, как вы тут же без проблем найдете решение этой проблемы.
Однако может быть и так, что вы понимаете причину возникновения ошибки, но не понимаете, как ее исправить, как бы сильно вы не старались.
Вместо того, чтобы тратить свое время просто так, можно погуглить сообщение об ошибке или предпринять что-то еще, что вы считаете уместным.
Кроме того, вы можете попросить помощи у другого человека, так как другие люди могут смотреть на те же вещи совсем по-другому. Этот человек беспристрастен, и эта беспристрастность может помочь в исправление некоторых ошибок.
Так что, гуглите!
Задавайте вопросы на StackOverflow, Twitter или еще где-то, где вы можете пообщаться с другими разработчиками.
Ничего страшного! Мы все это делали, и далеко не раз.
Исправление ошибки, доставляющей беспокойство, всегда провоцирует чувство тревоги. Но не переусердствуйте, так как, исправляя одну ошибку, можно наделать новых. Так что, в первую очередь убедитесь, что вы не внесли новых ошибок в программу. Именно поэтому очень важно использовать автоматизированные тесты.
Что такое пост-отладка?
«Пост-отладка» - это предположение непредвиденных ошибок в программах, которые вы уже написали.
Это относится ко всем механизмам, которые вы можете использовать для того, чтобы гарантировать тот факт, что неизвестные ошибки легко отслеживаются и устраняются до того, как они успеют навредить системе или компании.
А теперь вопрос: как вы это делаете? Хорошо, с помощью системы отслеживания ошибок.
Для того, чтобы иметь возможность находить ошибки по мере того, как они будут появляться уже после отправки приложения в промышленную эксплуатацию, в промышленной среде должна быть установлена система отслеживания ошибок.
Существует огромное количество средств отслеживания ошибок, просто нужно немного погуглить. Вот некоторые из них, с которыми вы можете ознакомиться:
www.sentry.io
www.honeybadger.io
www.pypi.org
www.airbrake.io
www.logrocket.com
Таких средств очень много. Для того, чтобы найти то, что вам подходит больше всего, вам просто нужно попробовать несколько вариантов.
Заключение
Отладка – это очень важный навык, который должны развивать все разработчики программного обеспечения. Отладка – это основа процесса написания программного кода, и, если ваш навык находится на хорошем уровне, это может повысить ваш уровень квалификации.
Для того, чтобы добиться успеха в том, что касается отладки, вы должны изучить как можно больше различных методов отладки. Большую часть этих методов я описал в этой статье.
Настало время стать великим разработчиков программного обеспечения, и отладка может вам в этом помочь.
Теперь, все, что вам осталось сделать для того, чтобы добиться успеха, это применить все эти знания на практике. После этого ваши навыки разработки программного обеспечения выйдут на новый уровень.
JSON (JavaScript Object Notation – нотация объектов JavaScript) – это популярный способ структурирования данных. Он используется для обмена информацией между веб-приложением и сервером. Но как прочитать файл JSON в Python?
В этой статье я покажу вам, как использовать методы json.loads() и json.load() для интерпретации (или как еще говорят парсинга) и чтения файлов и строк JSON.
Синтаксис JSON
Прежде чем мы приступим к интерпретации и чтению файла JSON, сначала нам нужно разобраться с основным синтаксисом. Подробнее про JSON можно почитать в этой статье. Синтаксис JSON выглядит как объектный литерал JavaScript с парами ключ-значение.
Вот пример данных JSON с данными организации:
{
"organization": "Company 1",
"website": "https://www.website.org/",
"formed": 2014,
"certifications": [
{
"name": "Responsive Web Design",
"courses": [
"HTML",
"CSS"
]
},
{
"name": "JavaScript Algorithms and Data Structures",
"courses": [
"JavaScript"
]
},
{
"name": "Front End Development Libraries",
"courses": [
"Bootstrap",
"jQuery",
"Sass",
"React",
"Redux"
]
},
{
"name": "Data Visualization",
"courses": [
"D3"
]
},
{
"name": "Relational Database Course",
"courses": [
"Linux",
"SQL",
"PostgreSQL",
"Bash Scripting",
"Git and GitHub",
"Nano"
]
},
{
"name": "Back End Development and APIs",
"courses": [
"MongoDB",
"Express",
"Node",
"NPM"
]
},
{
"name": "Quality Assurance",
"courses": [
"Testing with Chai",
"Express",
"Node"
]
},
{
"name": "Scientific Computing with Python",
"courses": [
"Python"
]
},
{
"name": "Data Analysis with Python",
"courses": [
"Numpy",
"Pandas",
"Matplotlib",
"Seaborn"
]
},
{
"name": "Information Security",
"courses": [
"HelmetJS"
]
},
{
"name": "Machine Learning with Python",
"courses": [
"Machine Learning",
"TensorFlow"
]
}
]
}
Как парсить строки JSON в Python
Python имеет встроенный модуль, который позволяет работать с данными в формате JSON. Вам необходимо будет импортировать модуль json.
import json
Если вам необходимо проинтерпретировать строку JSON, возвращающую словарь, то вы можете воспользоваться методом json.loads().
import json
# assigns a JSON string to a variable called jess
jess = '{"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]}'
# parses the data and assigns it to a variable called jess_dict
jess_dict = json.loads(jess)
# Printed output: {"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]}
print(jess_dict)
Как парсить и читать файлы JSON в Python
В данном примере мы имеем файл в формате JSON с именем fcc.json, который содержит те же данные, что и ранее, касающиеся курсов, которые предлагает сайт.
Если вы хотите прочитать этот файл, то для начала вам нужно использовать встроенную в Python функцию open() с режимом чтения. Мы используем ключевое слово with, чтобы убедиться, что файл закрыт.
with open('fcc.json', 'r') as fcc_file:
Если файл не может быть открыт, то мы получим ошибку OSError. Это пример ошибки "FileNotFoundError" при опечатке в имени файла fcc.json.
Затем мы можем проинтерпретировать файл, используя метод json.load() и присвоить его переменной с именем fcc_data.
fcc_data = json.load(fcc_file)
И в конце мы должны напечатать результат.
print(fcc_data)
Вот так будет выглядеть полный код:
import json
with open('fcc.json', 'r') as fcc_file:
fcc_data = json.load(fcc_file)
print(fcc_data)
Как красиво напечатать данные JSON в Python
Если мы посмотрим на то, как печатаются данные, то увидим, что все данные JSON печатаются в одной строке.
Однако такой формат вывода может быть затруднительным для чтения. И чтобы это исправить, мы можем реализовать метод json.dumps() с параметром indent (отступ).
В данном примере мы сделаем отступ в 4 пробела и будем печатать данные в более удобном для чтения формате.
print(json.dumps(fcc_data, indent=4))
Также мы можем отсортировать ключи в алфавитном порядке, используя параметр sort_keys и установив его значение на True.
print(json.dumps(fcc_data, indent=4, sort_keys=True))
Заключение
JSON – это популярный способ структурирования данных, который используется для обмена информацией между веб-приложением и сервером.
Если вам необходимо проинтерпретировать строку JSON, которая возвращает словарь, то вы можете использовать метод json.loads().
Если вам необходимо проинтерпретировать файл JSON, который возвращает словарь, то вы можете использовать метод json.load().
