Автор оригинала: Shubham Sayon.
Резюме: Используйте один из следующих методов для форматирования строк, которые содержат фигурные скобки:
- Используйте двойные фигурные брекеты
{{}}
- Используйте старый форматирование строки, то есть оператор%
- Используйте библиотеку JSON
- Используйте шаблонные строки
Проблема: Учитывая строковый литерал с фигурными брекетами; Как отформатировать строку и убедитесь, что фигурные брекеты доступны на выходе?
Чтобы понять заявление о проблеме, давайте посмотрим на следующий пример:
Пример:
x = "{Serial No.}{0} ".format(1) print(x)
Выход:
Traceback (most recent call last): File "main.py", line 1, inx = "{Serial No.}{0} ".format(1) KeyError: 'Serial No'
Вы можете попробовать это самостоятельно в интерактивной оболочке Python:
Упражнение : Прочитайте статью и исправьте ошибку!
Из приведенного выше примера ясно, что когда мы выполняем Печать
Заявление с буквальным текстом, который содержит фигурные скобки, программа повышает KeyError
Если мы не предоставляем правильный синтаксис для Форматирование строки Отказ В этой статье мы будем обсуждать методы для преодоления этой проблемы и распечатать наш текст с фигурными скобками вместе со форматированием строки. Следовательно:
Желаемый выход:
{Serial No:}1
Прежде чем мы погрузимся в решения, давайте посмотрим на причину KeyError
исключение.
KeyError Исключение
А KeyError
поднят, когда вы пытаетесь получить доступ или искать значение в Словарь Это не существует. Например, рассмотрим следующий словарь:
profile={ 'Name':'Shubham', 'id':12345 } print(profile['age'])
Вышеуказанный код поднимет KeyError
исключение. Это потому, что мы пытаемся получить доступ к ключу « возраст
«Что не существует в словаре Профиль
Отказ Поскольку ключ не существует, мы не можем получить доступ к любому значению, используя эту клавишу.
Вот что мы получаем, когда мы выполняем вышеуказанную программу:
Traceback (most recent call last): File "main.py", line 8, inprint(profile['age']) KeyError: 'age'
Нет, вопрос, который должен быть адресован – «Почему мы получаем Keeeror
при форматировании строки, содержащей текст вместе с фигурными брекетами?»
Причина: .Format ()
Как правило, ожидает вещей внутри {} ключевым ключам, но в этом случае он не может сделать это, так как « » Серийный номер.'
не ключ. Поэтому .Format ()
Невозможно разобрать данные. Это приводит к KeyError
Как мы пытаемся получить доступ к ключам, который не существует.
Теперь, когда мы знаем, почему мы получаем KeyError
Давайте погрузимся в решения, чтобы избежать этой ошибки.
Способ 1: Использование двойных фигурных скобок
Мы уже обсудили, что {} внутри строки формата – это специальные символы, поэтому, если мы хотим включить брекеты как часть нашего буквального текста, нам нужно сказать, что пункт строки. Format, что заданные фигурные скобки должны быть сбережены и рассматриваются как часть данного текстового литерала. Этого можно легко сделать, удвоение фигурных скобок, охватывающих строку, которая использует следующий синтаксис: {{Серийный номер.}}
Следующая программа обозначает, как мы можем использовать двойные фигурные скобки для достижения нашего решения:
x = "{{Serial No.}}{0} ".format(1) print(x)
Выход:
{Serial No.}1
Способ 2: Использование старого стиля форматирования строки (%)
Если вы не хотите использовать двойные фигурные скобки, то вы можете себе представлять собой старый стиль форматирования строки, который использует модуль ( %)
оператор. Давайте посмотрим на следующую программу, чтобы понять, как мы можем использовать оператор Modulo для печати нашей строки вместе с вьющимися брендами.
x = " {Serial No.}%s" print (x%(1))
Выход
{Serial No.}1
Метод 3: Использование библиотеки JSON
В ситуациях, где вам нужно разобраться с сложным JSON Строки Самый эффективный метод борьбы с такими сценариями является использование JSON
Библиотека в вашей программе.
★ json.dumps ()
Метод используется для покрытия объекта Python, как словарь, к строке JSON.
Рассмотрим следующий пример, который объясняет, как мы можем использовать библиотеку JSON для печати строк JSON:
import json group = "Admin" id = 1111 x = {"ID" : id, "Group" : group} print(json.dumps(x))
Выход:
{"ID": 1111, "Group": "Admin"}
Посмотрите на следующий фрагмент, приведенный ниже, чтобы сравнить, и контрастировать, насколько сложным и грязным синтаксисом становится, когда мы пытаемся распечатать ту же строку, используя {{}} в нашей программе.
group = "Admin" id = 1111 print('{{"ID": {}, "Group": {}}}'.format(id,group))
Выход:
{"ID": 1111, "Group": Admin}
Метод 4: Использование строк шаблона
Шаблонные строки используются для обеспечения строковых замещений. Если вы хотите избежать дополнительных фигурных скобок и% на основе замены, вы можете использовать Шаблон
класс строка
модуль.
★ Заменитель ()
Метод выполняет замену шаблона и возвращает новую строку.
Отказ от ответственности: Это может быть немного запутанным и склонным к нескольким исключениям, если не используется должным образом, поэтому я лично не рекомендую вам использовать эту процедуру, если не обязательно.
Давайте посмотрим на следующую программу, чтобы понять использование Шаблон
Строки:
from string import Template x = Template("$open Serial No: $close") x = x.substitute(open='{',close='}') print('{} {}'.format(x,1))
Выход:
{ Serial No: } 1
УПРАЖНЕНИЕ
Теперь давайте приступим на наши руки и практикуйте некоторые кодировки. Можете ли вы угадать вывод следующего фрагмента?
Примечание. Убедитесь, что вы следуете комментариям в данном фрагменте, который откроется для вас важной концепции!
greet = "HELLO FINXTER" name = input("Enter Your Name: ") age = input("Enter Your Age:") print("\n") # to resolve an expression in the brackets instead of using literal text use three sets of curly braces print(f"{{{greet.lower()}}} {name}") print('{{You are {} years old!}}'.format(age))
Вывод
В этой статье мы обсудили различные методы для форматирования строки, которая содержит фигурные скобки в Python. Честно говоря, двойные фигурные брекеты являются простейшим решением при использовании библиотеки JSON является наиболее эффективным методом при работе с комплексными данными JSON. Тем не менее, вы всегда можете бесплатно использовать любой метод, который подходит для ваших требований, и лучшим способом получения всех этих методов – это практиковать их. Поэтому без дальнейшей задержки, пожалуйста, попробуйте их в вашей системе, и, пожалуйста, не стесняйтесь бросить запросы.
Пожалуйста, подпишитесь и оставайтесь настроенными для более интересных статей!
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.
Вы можете связаться со мной @: