在 Python 3.6 中使用 f-string 时出现无效语法错误

问题描述

我遇到了这个奇怪的错误,我想知道是否有人知道发生了什么。

我正在尝试从 Pandas 系列的日期列中打印最小日期。但是,以下内容引发了无效的语法错误

print(f'{df_raw['POSTING_DATE'].min()}')

这确实有效:

min_date = df_raw['POSTING_DATE'].min()
print(f'{min_date}')

使用 .format() 也有效。显然我可以在这里使用一种解决方法,但我只是想知道为什么 f-string 语法在这种情况下不起作用。我认为 f-strings 应该能够处理类似的表达式。 我使用的是 Python 3.6.9。

解决方法

使用 " 作为:

print(f"{df_raw['POSTING_DATE'].min()}")

更新:

理想情况下,我们可以使用 \ 来转义引号,但 f-strings 不支持在其中使用 \,因此这不适用于 f-strings

print(f'{df_raw[\'POSTING_DATE\'].min()}')