Python:字符串连接对象的多个属性

sfr*_*sfr 2 python string attributes join object

我有一个基于 Orm 的对象列表。我现在想连接一些由“|”分隔的属性 (管道),然后使用“\n”连接所有对象。

我试过:

class A(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

obj_list = [A("James", 42), A("Amy", "23")]
"\n".join("|".join(o.name, o.age for o in obj_list))

File "<console>", line 1
SyntaxError: Generator expression must be parenthesized if not sole Argument
Run Code Online (Sandbox Code Playgroud)

究竟什么必须加括号?

有什么提示吗?

保护你。

Fel*_*lix 6

我认为这就是您想要实现的目标:

obj_list = [A("James", 42), A("Amy", "23")]
"\n".join("|".join((o.name, o.age)) for o in obj_list)
Run Code Online (Sandbox Code Playgroud)

结果:

James|42
Amy|23
Run Code Online (Sandbox Code Playgroud)

注意:如果您的对象包含非字符串属性,则必须将它们转换为字符串,例如"|".join(o.name, str(o.age)).