格式字符串,该字符串位于双大括号中

2024-04-27 00:09:22 发布

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

我需要执行以下简短的代码

isin = 'US0028241000'
payload = f'[{"idType":"ID_ISIN", "idValue": "{isin}"}]'

它输出一个ValueError: Invalid format specifier

我还尝试:

payload = '[{"idType":"ID_ISIN", "idValue": "{}"}]'.format(isin)

这个不行。 我的想法是,这是因为卷曲括号位于dict中。我如何执行这一段


Tags: 代码idformatdict括号payloadvalueerror卷曲
3条回答

问题是花括号

要想逃离它们,请尝试:

payload = f'[{{"idType":"ID_ISIN", "idValue": "{isin}"}}]'

你的标题暗示了解决办法。在f字符串中,需要使用{{}}来表示文字大括号,但从来没有引入它们

>>> f'[{{"idType":"ID_ISIN", "idValue": "{isin}"}}]'
'[{"idType":"ID_ISIN", "idValue": "US0028241000"}]'

也就是说,不要使用字符串格式化工具构造JSON值;使用json模块

>>> import json
>>> json.dumps([{'idType': 'ID_ISIN', 'idValue': isin}])
'[{"idType": "ID_ISIN", "idValue": "US0028241000"}]'
isin = 'US0028241000'
payload = f'[{{"idType":"ID_ISIN", "idValue": "{isin}"}}]'
print(payload)

要在格式化字符串时忽略任何大括号,只需使用{}将其包装

相关问题 更多 >