Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Python中,用字符串替换jinja变量的每个实例

在Python中,用字符串替换jinja变量的每个实例
EN

Stack Overflow用户
提问于 2020-07-09 08:36:41
回答 2查看 850关注 0票数 3

我有以下代码,可以使用Jinja创建一个字符串

代码语言:javascript
运行
AI代码解释
复制
from jinja2 import Template

jT = Template('"text": {{text}}, "peripherals": {{peripherals}}')
params = {'text': 'some_text', 'peripherals': 'mouse'}
jT.render(**params)

结果输出为:

'"text": some_text, "peripherals": mouse'

有没有一种方法可以用引号将替换的值括起来,如下所示:

'"text": "hello", "peripherals": "mouse"'

除了编辑现有的jinja和使用{{text|tojson}}之外,Python中是否有一种方法/函数可以自动将每个替换的值括在引号中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-09 12:36:12

如果Jinja包没有内置的工具自动将每个变量替换为字符串,那么我认为这将是正确的方法:

代码语言:javascript
运行
AI代码解释
复制
import re
from jinja2 import Template

template = '{"text": {{text}}, "peripherals": {{peripherals}}}'
# Use regular expressions to identify the variables
template = re.sub(r"({{)(\w*)(}})", r'"\1\2\3"', template)

jT = Template(template)

params = {'text': 'some_text', 'peripherals': 'mouse'}
print(jT.render(**params))

它只是在模板中搜索变量,并将它们封装在引号中。

票数 5
EN

Stack Overflow用户

发布于 2020-07-09 08:42:19

只需修改您的模板:

代码语言:javascript
运行
AI代码解释
复制
from jinja2 import Template

jT = Template('"text": "{{text}}", "peripherals": "{{peripherals}}"')
params = {'text': 'some_text', 'peripherals': 'mouse'}
print(jT.render(**params))

返回:

代码语言:javascript
运行
AI代码解释
复制
"text": "some_text", "peripherals": "mouse"

在不修改模板的情况下,使用以下自定义代码:

代码语言:javascript
运行
AI代码解释
复制
jT = Template('"text": {{text}}, "peripherals": {{peripherals}}')
params = {'text': 'some_text', 'peripherals': 'mouse'}
j = jT.render(**params)
# Specifically for your example:
print(f'{j.split()[0]} "{j.split()[1][:-1]}", {j.split()[2]} "{j.split()[3]}"')
# More general:
for i in range(len(j.split()) - 1):
    if i % 2 == 0:
        print(j.split()[i] + ' ', end='')
    else:
        print('"' + j.split()[i][:-1] + '",', end=' ')
print('"' + j.split()[-1] + '"')

返回:

代码语言:javascript
运行
AI代码解释
复制
"text": "some_text", "peripherals": "mouse"
"text": "some_text", "peripherals": "mouse"

如果您需要为多个模板运行它,请将其放在一个函数中:

代码语言:javascript
运行
AI代码解释
复制
def render_template(j):
    for i in range(len(j.split()) - 1):
        if i % 2 == 0:
            print(j.split()[i] + ' ', end='')
        else:
            print('"' + j.split()[i][:-1] + '",', end=' ')
    print('"' + j.split()[-1] + '"')


render_template(j)

再次返回:

代码语言:javascript
运行
AI代码解释
复制
"text": "some_text", "peripherals": "mouse"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62810736

复制
相关文章
在 Python 中的常见的几种字符串替换操作
比如,输入的字符串为’one two one two one’,第一个参数为替换前的参数,第二个为替换后的参数。默认会替换字符串中的所有符合条件的字符串。
全栈程序员站长
2022/09/07
6.2K0
用指定字符替换字符串的 Python 程序
将字符串中的字符替换为指定的字符是具有许多不同应用程序的常见文本处理方法。有一些示例,例如数据转换、文本规范化和数据清理。在 Python 中,我们有一些字符串内置函数,可用于根据指定的字符将字符串转换为字符数组。构成单词的字符组称为字符串。在这个程序中,我们需要一个空字符串来存储新字符串。
很酷的站长
2023/08/11
2180
用指定字符替换字符串的 Python 程序
python中替换字符串中字符_Python replace()函数:替换字符串中的某个字符「建议收藏」
下面我们将通过一组示例,详细给大家说明下关于用python的替换问题,相信大家结合实例一定非常容易理解,一起来看下吧~
全栈程序员站长
2022/09/06
4.5K0
python中替换字符串中字符_Python replace()函数:替换字符串中的某个字符「建议收藏」
python 替换字符串中的元素「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144908.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/26
2.9K0
python 字符串替换
text = 'yeah, but no, but yeah, but no, but yeah' text.replace('yeah', 'yep') 'yep, but no, but yep, but no, but yep' 或者正则 text = 'Today is 11/27/2012. PyCon starts 3/13/2013.' import re re.sub(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', text) 'Today is 2012
用户5760343
2019/09/25
3.2K0
Makefile中的字符串替换
Makefile Tutotial最后给出了一段makefile,里面OBJS有字符串通配、替换的过程:
mingjie
2023/10/13
5530
Python面向对象中的类变量,实例变量怎么来理解?
前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。
前端皮皮
2022/08/17
1.7K0
Python面向对象中的类变量,实例变量怎么来理解?
js替换html中的字符串,js怎么替换字符串?
在js中,可以使用str.replace()方法来替换字符串。replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;然后返回一个新的字符串。
全栈程序员站长
2022/08/30
23.7K0
js替换html中的字符串,js怎么替换字符串?
用 Map统计字符串中每个字符…
public static void main(String [] args)
明明如月学长
2021/08/27
3540
在vim和vi中查找和替换字符串
Vim是最受欢迎的命令行文本编辑器。它预装在macOS和大多数Linux发行版上。在Vim中查找和替换文本非常容易。 基本查找和替换 在Vim中,可以使用:substitute(:s)命令来查找和替换文本。 要在Vim中运行命令,必须处于normal模式,这是启动编辑器时的默认模式。要从其他任何模式返回normal模式,只需按 Esc键。 替换命令的一般形式如下: :[range]s/{pattern}/{string}/[flags] [count] 该命令在[range]中的每一行中搜索{patter
入门笔记
2022/06/02
16.9K0
Flask Jinja2 模板中的变量和过滤器
通常,返回的 Jinja2 模板文件并不是一个静态的页面,而是同时有静态部分和动态部分。
Python碎片公众号
2021/02/26
2.8K0
Flask Jinja2 模板中的变量和过滤器
【LeetCode】把字符串 s 中的每个空格替换成““%20””day02
原题地址:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
袁新栋-jeff.yuan
2020/08/26
1.4K0
python 利用jinja2模板生成html代码实例
这篇文章主要介绍了python 利用jinja2模板生成html代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
stys35
2020/08/12
2K0
bash shell参数展开(Shell Parameter Expansion):替换变量(variable)中的字符串
在写bash shell脚本时,如果遇到要替换变量中的字符串,首先想到的就是用sed命令,比如下面的示例将变量str中的数字123替换成UUU:
10km
2021/11/11
3.9K0
python替换第n个字符串_替换字符串中第n个出现的子字符串
我已经想出了下面的方法,它还考虑了替换所有出现在左边或右边的“旧”字符串的选项。当然,由于标准str.replace工作得很好,因此没有替换所有引用的选项。def nth_replace(string, old, new, n=1, option='only nth'):
用户7886150
2021/01/11
4.8K0
python中全局变量、局部变量、类变量、实例变量简析
因为python为动态语言,处理变量的方式与一些静态语言(比如C++)不大一样,在这里对这些变量进行小小的总结
用户7886150
2020/11/23
1.8K0
盘点一个Python中字符串替换的问题
前几天在Python白银交流群【凡人不烦人】问了一道Python字符串替换的题目,如下图所示。
前端皮皮
2022/08/17
1.4K0
盘点一个Python中字符串替换的问题
Java中的宏变量,宏替换详解。
群友在微信群讨论的一个话题,有点意思,特拿出来分享一下。 输出true false 来看下面这段程序,和群友分享的大致一样。 public static void main(String[] args
Java技术栈
2018/03/30
3.8K0
Java中的宏变量,宏替换详解。
【说站】python字符串中变量的使用
1、为了在字符串中插入变量值,可以在前引号前添加字符f,然后将要插入的变量放入花括号中。当Python显示字符串时,每个变量都被它所取代。
很酷的站长
2022/11/26
3.3K0
【说站】python字符串中变量的使用
点击加载更多

相似问题

用包含实例索引的变量替换字符串的每个实例。

36

Prolog用变量替换列表中常量的每个实例

21

用变量替换实例

117

用regex替换变量替换Python字符串

34

替换Python字符串中每个字符的实例

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文