ten*_*s27 6 python python-3.x f-string
当字符串转换为 f 字符串时,以下代码会导致无效的格式说明符。我无法确定问题出在哪里,因为我的报价看起来没问题。
expected_document = f'{"name":"tenders","value":"chicken","key":"{key}"}'
Run Code Online (Sandbox Code Playgroud)
原因:
> expected_document = f'{"name":"tenders","value":"chicken","key":"{key}"}'
E ValueError: Invalid format specifier
Run Code Online (Sandbox Code Playgroud)
同时删除f:
expected_document = '{"name":"tenders","value":"chicken","key":"{key}"}'
Run Code Online (Sandbox Code Playgroud)
工作正常。
为什么要使用f 字符串?
以下代码有效。
key = 'test'
expected_document = { "name": "tenders", "value": "chicken", "key": key }
print(expected_document)
Run Code Online (Sandbox Code Playgroud)
输出:
{'name': 'tenders', 'value': 'chicken', 'key': 'test'}
Run Code Online (Sandbox Code Playgroud)
更新#1:如果您希望它作为字符串并且不想进行类型转换,那么......
key = 'test'
expected_document_1 = '{"name":"tenders","value":"chicken","key":"' + key + '"}' # old fashioned way
print(expected_document_1)
expected_document_2 = f'{{"name":"tenders","value":"chicken","key":"{key}"}}' # using f-string
print(expected_document_2)
Run Code Online (Sandbox Code Playgroud)
输出:
{"name":"tenders","value":"chicken","key":"test"}
{"name":"tenders","value":"chicken","key":"test"}
Run Code Online (Sandbox Code Playgroud)
更新#2: @Error - Syntropical Remorse已经建议了在评论之一中转义大括号的第二种选择。
我认为你可以将 f 像这样放在字典中:
key = 'test'
expected_document = {"name":"tenders","value":"chicken","key":f"{key}"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6487 次 |
| 最近记录: |