我正在运行以下代码:
asset = {}
asset['abc'] = 'def'
print type(asset)
print asset['abc']
query = '{"abc": "{abc}"}'.format(abc=asset['abc'])
print query
Run Code Online (Sandbox Code Playgroud)
哪个引发KeyError错误:
[user@localhost] : ~/Documents/vision/inputs/perma_sniff $ python ~/test.py
<type 'dict'>
def
Traceback (most recent call last):
File "/home/user/test.py", line 5, in <module>
query = '\{"abc": "{abc}"\}'.format(abc=asset['abc'])
KeyError: '"abc"'
Run Code Online (Sandbox Code Playgroud)
格式显然被包装混淆了{.如何确保格式只尝试替换(正确的)内部{abc}.
即,预期产量是:
{"abc": "def"}
Run Code Online (Sandbox Code Playgroud)
(我知道我可以使用该json模块执行此任务,但我想避免这种情况.我更愿意使用格式.)
xnx*_*xnx 31
要插入文字大括号,请将其加倍:
query = '{{"abc": "{abc}"}}'.format(abc=asset['abc'])
Run Code Online (Sandbox Code Playgroud)
(这是记录在这里,但没有特别突出明显).
将外部大括号包裹在大括号中:
query = '{{"abc": "{abc}"}}'.format(abc=asset['abc'])
print query
{"abc": "def"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7378 次 |
| 最近记录: |