比方说我有:
action = '{bond}, {james} {bond}'.format(bond='bond', james='james')
Run Code Online (Sandbox Code Playgroud)
这个输出:
'bond, james bond'
Run Code Online (Sandbox Code Playgroud)
接下来我们有:
action = '{bond}, {james} {bond}'.format(bond='bond')
Run Code Online (Sandbox Code Playgroud)
这将输出:
KeyError: 'james'
Run Code Online (Sandbox Code Playgroud)
是否有一些解决方法可以防止此错误发生,例如:
我有一个字符串,我想要花括号,但也利用f字符串功能.是否有一些适用于此的语法?
这有两种方法不起作用.我想将文字文本" {bar}"包含在字符串中.
foo = "test"
fstring = f"{foo} {bar}"
Run Code Online (Sandbox Code Playgroud)
NameError:未定义名称"bar"
fstring = f"{foo} \{bar\}"
Run Code Online (Sandbox Code Playgroud)
SyntaxError:f-string表达式部分不能包含反斜杠
期望的结果:
'test {bar}'
Run Code Online (Sandbox Code Playgroud)
编辑:看起来这个问题有相同的答案如何在python字符串中打印文字大括号字符,并使用.format吗?,但你只能知道,如果你知道格式函数使用与f字符串相同的规则.所以希望这个问题对于将f-string搜索者与这个答案联系起来是有价值的.
如果我用Python写:
data = {'n': 3, 'k': 3.141594, 'p': {'a': 7, 'b': 8}}
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
del data['k']
data['p']['b'] = None
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
Run Code Online (Sandbox Code Playgroud)
我明白了:
3, 3.14, 7, 8
Traceback (most recent call last):
File "./funky.py", line 186, in <module>
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
KeyError: 'k'
Run Code Online (Sandbox Code Playgroud)
而不是错误消息,我如何让Python更优雅地格式化None和不存在的字段?
举个例子,我想在输出中看到更像:
3, 3.14, 7, 8
3, ~, 7, ~
Run Code Online (Sandbox Code Playgroud)
当然,理想情况下,我希望能够指定使用的字符串而不是那些缺少的值.
我想打印一个单一的大括号。
例子:
a = 2
>>> f"{'{'} {a}"
'{ 2'
Run Code Online (Sandbox Code Playgroud)
如何使用少于 5 个字符?
我遇到了一个相当简单的问题,我无法想出一个优雅的解决方案.
我正在str.format一个函数中创建一个字符串,该函数在一个dict替换中传递以用于格式.我想创建字符串并使用值格式化它们,如果它们被传递,否则将它们留空.
防爆
kwargs = {"name": "mark"}
"My name is {name} and I'm really {adjective}.".format(**kwargs)
Run Code Online (Sandbox Code Playgroud)
应该回来
"My name is mark and I'm really ."
Run Code Online (Sandbox Code Playgroud)
而不是抛出KeyError(如果我们不做任何事情会发生什么).
令人尴尬的是,我甚至无法为这个问题提出一个不优雅的解决方案.我想我可以通过不使用来解决这个问题str.format,但如果可能的话,我宁愿使用内置(主要是我想要的).
注意:我事先并不知道将使用哪些密钥.如果有人包含一把钥匙但是没有把它放在kwargs dict中,我试图优雅地失败.如果我100%准确地知道将要查找哪些键,我只需填充所有键并完成它.
如何在python中显示一个简单的乳胶配方?也许numpy是正确的选择?
编辑:
我有python代码,如:
a = '\frac{a}{b}'
Run Code Online (Sandbox Code Playgroud)
并希望在图形输出中打印(如matplotlib).
基本上,我想使用.format(),如下所示:
my_string = '{{0}:{1}}'.format('hello', 'bonjour')
Run Code Online (Sandbox Code Playgroud)
并匹配:
my_string = '{hello:bonjour}' #this is a string with literal curly brackets
Run Code Online (Sandbox Code Playgroud)
但是,第一段代码给了我一个错误.
大括号很重要,因为我使用Python通过基于文本的命令与一个软件进行通信.我无法控制fosoftware所期望的格式,因此我最终整理出所有格式是至关重要的.它在字符串周围使用大括号来确保字符串中的空格被解释为单个字符串,而不是多个参数 - 就像通常使用文件路径中的引号一样.
我目前正在使用旧方法:
my_string = '{%s:%s}' % ('hello', 'bonjour')
Run Code Online (Sandbox Code Playgroud)
这当然有效,但.format()似乎更容易阅读,当我在一个字符串中发送包含五个或更多变量的命令时,可读性成为一个重要问题.
谢谢!
我有一个字符串,我想使用python的.format函数在运行时添加一些变量,这是我的字符串:
'{"auth": {"tenantName": "{Insert String Here}", "passwordCredentials": {"username": "{insert String here}", "password": "{insert String Here}"}}}'
Run Code Online (Sandbox Code Playgroud)
当我像这样使用.format:
credentials='{"auth": {"tenantName": "{tenant}", "passwordCredentials": {"username": "{admin}", "password": "{password}"}}}'.format(tenant='me',admin='test',password='123')
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
KeyError: '"auth"'
Run Code Online (Sandbox Code Playgroud)
任何帮助?提前致谢.
Python版本3.5
我正在尝试进行API调用以使用json作为格式配置设备.一些json会根据所需的命名而有所不同,所以我需要在字符串中调用一个变量.我可以使用旧样式完成此操作%s... % (variable),但不能使用新样式{}... .format(variable).
EX失败:
(Testing with {"fvAp":{"attributes":{"name":(variable)}}})
a = "\"app-name\""
app_config = ''' { "fvAp": { "attributes": { "name": {} }, "children": [ { "fvAEPg": { "attributes": { "name": "app" }, "children": [ { "fvRsBd": { "attributes": { "tnFvBDName": "default" }, } } ] } }, { "fvAEPg": { "attributes": { "name": "db" }, "children": [ { "fvRsBd": { "attributes": { "tnFvBDName": "default" }, } } ] } } ] } } '''.format(a)
print(app_config) …Run Code Online (Sandbox Code Playgroud) 我在使用format看起来像Python字典的字符串时遇到问题.
我想生成以下字符串:{"one":1}
如果我尝试这样做:
'{"one":{}}'.format(1)
Run Code Online (Sandbox Code Playgroud)
解释器抛出一个KeyError:
>>> a = '{"one":{}}'.format(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: '"one"'
Run Code Online (Sandbox Code Playgroud)
据我所知,这个问题大概在该字符串中包含的事实围绕{,可以用混淆format的{}.为什么会发生这种情况,如何解决?
我知道百分比格式,但我想找到一个不涉及开沟的解决方案format().
python ×10
string ×4
missing-data ×3
f-string ×2
python-3.x ×2
defaultdict ×1
formatting ×1
formula ×1
json ×1
latex ×1
python-3.6 ×1