2024-09-27 07:26:48 发布
网友
我试图在运行时生成一个来自对象的动态id,并将其插入数据库
'{"mykey": {value}}'.format(value=obj.id)
但这是一个错误
KeyError: '"mykey"'
预期结果:
'{"mykey": 4}' # assuming obj.id = 4
我知道我可以使用json.dumps,但我不希望使用json来完成这么简单的任务,我不得不求助于:'{"mykey": %s}' %(obj.id,)
json.dumps
'{"mykey": %s}' %(obj.id,)
但我很想知道一种使用格式的方法
您需要escape the ^{}:
>>> value = 4 >>> '{{"mykey": {value}}}'.format(value=value) '{"mykey": 4}'
您还可以访问在上下文中传入obj的格式模板内的对象属性:
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}'
您需要escape the ^{} :
您还可以访问在上下文中传入
obj
的格式模板内的对象属性:在Python 3.6中出现的format strings也是如此:
相关问题 更多 >
编程相关推荐