提问者:小点点

格式化双花括号中的字符串


我需要执行以下短代码

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

它输出valueerror:无效格式说明符

我也试过:

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

这个不太好用。 我的想法是,这是因为花括号位于一个词内。 我该如何执行这首曲子?


共3个答案

匿名用户

你的标题暗示了解决办法。 在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"}]'

匿名用户

问题是花括号。

要摆脱它们,请尝试:

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

匿名用户

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

若要在设置字符串格式时忽略任何花括号,只需用{}将其换行即可