字符串中的Python格式变量

字符串中的Python格式变量,python,Python,我有个问题。 我想给变量分配一个路径,所以我这样做了: customers = ["john", "steve", "robbert", "benjamin"] for customer in customers: dataset = "/var/www/test.nl/customer_data/" + str({customer}) + ".csv" 所以我希望这个变量的输出是: /var/www/test.nl/customer_data/john.csv 但事实并非如此,因为

我有个问题。 我想给变量分配一个路径,所以我这样做了:

customers = ["john", "steve", "robbert", "benjamin"]
for customer in customers:
    dataset = "/var/www/test.nl/customer_data/" + str({customer}) + ".csv"
所以我希望这个变量的输出是:

/var/www/test.nl/customer_data/john.csv
但事实并非如此,因为我得到的结果是:

/var/www/test.nl/customer_data/set(['john']).csv

我做错了什么,我该如何解决这个问题?

这里,您首先创建一个包含该字符串的单例集。因此,它的格式是错误的。与:

str({customer})
因此,首先构造一个集合,例如:

>>> {"john"}
{'john'}
>>> type({"john"})
<class 'set'>
那么这就是我们要填写的值,而我们只需要字符串customer本身的内容

您可以使用以下格式设置这些文件的格式:

customers = ["john", "steve", "robbert", "benjamin"]
for customer in customers:
    dataset = "/var/www/test.nl/customer_data/{}.csv".format(customer)

所以这里{}将替换为customer的字符串表示形式,但是由于customer已经是一个字符串,因此它将简单地填充字符串。

这里首先创建一个包含该字符串的单例集。因此,它的格式是错误的。与:

str({customer})
因此,首先构造一个集合,例如:

>>> {"john"}
{'john'}
>>> type({"john"})
<class 'set'>
那么这就是我们要填写的值,而我们只需要字符串customer本身的内容

您可以使用以下格式设置这些文件的格式:

customers = ["john", "steve", "robbert", "benjamin"]
for customer in customers:
    dataset = "/var/www/test.nl/customer_data/{}.csv".format(customer)

所以这里{}将替换为customer的字符串表示形式,但是由于customer已经是一个字符串,因此它将简单地填充字符串。

customer变量周围有大括号。替换

dataset = "/var/www/test.nl/customer_data/" + str({customer}) + ".csv"

更好的是,如果在python 3.6或更高版本上,请使用f字符串:

dataset = f"/var/www/test.nl/customer_data/{customer}.csv"

这可能是您看到用于字符串格式设置的大括号的地方。按照使用它们的方式,您是在内联定义set对象。

在客户变量周围有花括号。替换

dataset = "/var/www/test.nl/customer_data/" + str({customer}) + ".csv"

更好的是,如果在python 3.6或更高版本上,请使用f字符串:

dataset = f"/var/www/test.nl/customer_data/{customer}.csv"
这可能是您看到用于字符串格式设置的大括号的地方。使用它们的方式是,以内联方式定义集合对象