在格式化字符串时转义其中一个键

2024-09-27 07:26:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在运行时生成一个来自对象的动态id,并将其插入数据库

'{"mykey": {value}}'.format(value=obj.id)

但这是一个错误

KeyError: '"mykey"'

预期结果:

'{"mykey": 4}' # assuming obj.id = 4

我知道我可以使用json.dumps,但我不希望使用json来完成这么简单的任务,我不得不求助于:'{"mykey": %s}' %(obj.id,)

但我很想知道一种使用格式的方法


Tags: 对象方法id数据库jsonobjformatvalue
1条回答
网友
1楼 · 发布于 2024-09-27 07:26:48

您需要escape the ^{}

>>> value = 4
>>> '{{"mykey": {value}}}'.format(value=value)
'{"mykey": 4}'

您还可以访问在上下文中传入obj的格式模板内的对象属性:

>>> from collections import namedtuple
>>> Object = namedtuple('Object', 'id')
>>> obj = Object(id=4)
>>> obj.id
4
>>> '{{"mykey": {obj.id}}}'.format(obj=obj)
'{"mykey": 4}'

Python 3.6中出现的format strings也是如此:

>>> value = 4
>>> f'{{"mykey": {value}}}'
'{"mykey": 4}'

相关问题 更多 >

    热门问题