当前位置: 首页 > 面试题库 >

Python:使用自定义分隔符格式化字符串

强安和
2023-03-14
问题内容

我必须使用字典中的值格式化字符串,但是该字符串已经包含大括号。例如:

raw_string = """
    DATABASE = {
        'name': '{DB_NAME}'
   }
"""

但是,当然会raw_string.format(my_dictionary)导致KeyErro。

有没有办法使用不同的符号来使用.format()

这不是我如何在python字符串中打印文字大括号字符并在其上使用.format的重复项?因为我需要保持大括号不变,并为使用不同的定界符.format


问题答案:

语境

  • python 2.7
  • string.format()
  • 允许自定义占位符语法的替代方法

问题

我们要在Python str.format()中使用自定义占位符定界符

  • string.format() 功能强大,但是没有本地支持修改占位符分隔符。
  • string.format()使用非常常见的花括号,并导致定界符冲突
  • string.format() 默认的解决方法是加倍分隔符,这可能很麻烦。

我们编写了一个扩展本地python的自定义类 str.format()

  • string.Formatter使用自定义类扩展本机python
  • 配置string.format()为支持任意定界符占位符语法
  • 允许其他增强功能,例如自定义格式器和过滤器

例001:演示自定义ReFormat类的使用

  • 我们写了一个ReFormat扩展python的自定义类str.format()

    import custom class

    import ReFormat

    prepare source data

    odata = { “fname” : “Planet”,
    “lname” : “Earth”,
    “age” : “4b years”,
    }


    format output using .render()

    method of custom ReFormat class

    vout = ReFormat.String(“Hello <%fname%> <%lname%>!”,odata).render()
    print(vout)

陷阱

  • 需要扩展类 str.format()
  • 不能替代成熟的兼容沙盒的模板解决方案


 类似资料:
  • 问题 你想通过 format() 函数和字符串方法使得一个对象能支持自定义的格式化。 解决方案 为了自定义字符串的格式化,我们需要在类上面定义 __format__() 方法。例如: _formats = { 'ymd' : '{d.year}-{d.month}-{d.day}', 'mdy' : '{d.month}/{d.day}/{d.year}', 'dmy' :

  • 问题内容: 目前,我仅显示键,每个键都在新行中显示: 如何在新行中将它们显示为 key :: value ? 问题答案: 通过迭代器,将生成一个键,值元组: 更新为现代符号:

  • 问题内容: Javascript中是否有用于格式化数字和字符串的函数? 我正在寻找一种用于字符串或数字的千位分隔符的方法…(如C#中的String.Format) 问题答案: 以下原始答案中引用的参考文献有误。这里是一个内置的功能,这一点,而这正是德皇以下建议: 因此,您可以执行以下操作: 下面实现的功能也可以使用,但是根本没有必要。 原始答案 根据此参考资料,没有内置函数可将逗号添加到数字中。但

  • 问题内容: 如何为角度JS使用自定义定界符?我想将语法从更改为。 有人可以教我一个完整的示例,以了解如何使用Angular来实现吗? 问题答案: 您可以用来更改用于AngularJS表达式的开始/结束符号: 然后,在您的模板中: 这是工作中的jsFiddle:http : //jsfiddle.net/Bvc62/3/ 在此处查看有关服务的文档:http : //docs.angularjs.or

  • 主要内容:指定最小输出宽度,指定对齐方式,指定小数精度我们在《 第一个Python程序——在屏幕上输出文本》中讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出,这就是本节要讲解的内容。 熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数,它们是非常类似的。 print() 函数使用以 开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。

  • 问题内容: 如何在定界符哪里分割此字符串 获得?的输出 问题答案: 你可以使用以下功能: