在 Python 中将 fstrings 作为参数传递

问题描述 投票:0回答:1

我正在尝试写入 csv 文件,为此我必须将存储在不同变量中的一些值传递给 writerow 方法。但是当我尝试这样做时,我总是得到这个错误:

'SyntaxError: 右括号 ')' 与左括号 '{'' 不匹配。

我已经尝试过使用“%s”的旧时尚方法,但错误仍然存在。这是我尝试实现 f 字符串方法的代码:

with open("All-Pros_1970-2022", 'w') as csvfile:
    fieldnames = ['Div', 'Yr', 'AP']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()

### There's some code here but not related to writting the csv

        for i in AFC:
            writer.writerow({'Div': f"{i[2]}", 'Yr':{draft_year}, 'AP':f"{i[0]}")
        for i in NFC:
            writer.writerow({'Div': f"{i[2]}", 'Yr':{draft_year}, 'AP':f"{i[0]}")

有什么方法可以传递一个 f 字符串或类似的参数作为参数吗?提前致谢

python csv export-to-csv file-writing
1个回答
0
投票

关于字典行的构造,还有一些问题需要解决。为了让它更容易查看/使用,让我们将该行构建为一个独立的语句。

import csv

draft_year = 2023
AFC = [
    ["some AP value", "", "some Div value"],
    ["some AP value2", "", "some Div value2"],
]

with open("All-Pros_1970-2022", 'w', newline="") as csvfile:
    fieldnames = ['Div', 'Yr', 'AP']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    for i in AFC:
        row = {
            'Div': f"{ i[2] }",
            'Yr': f"{ draft_year }",
            'AP': f"{ i[0] }"
        }
        writer.writerow(row)

这将创建一个文件,其内容为:

Div,Yr,AP
some Div value,2023,some AP value
some Div value2,2023,some AP value2
© www.soinside.com 2019 - 2024. All rights reserved.