Python - 连接 join() 方法的输出

Python - Concat the output of join() method

在 python + psycopg2 中是否可以转换使用内联 for 循环的这行代码:

args_str = ','.join(cur_psql.mogrify("(%(customer_id)s, %(customer_name)s, %(contact_name)s, %(address)s, %(city)s, %(postal_code)s, %(country)s)", row) for row in cur_msql)

进入一段代码,允许在迭代 for 循环时进行更多操作,但仍然获得相同的输出(包含所有数据的单个对象 -> args_str) ?例如:

for row in cur_msql:
  # additional operations eg.:
  if row['customer_name'] == NULL:
    row['customer_name'] = row['customer_name']
  args_str =+ ','.join(cur_psql.mogrify("(%(customer_id)s, %(customer_name)s, %(contact_name)s, %(address)s, %(city)s, %(postal_code)s, %(country)s)", row)

此代码将每个 "mogrified" 值累积在一个列表中,然后使用 join() 将它们放在一起:

args = []
for row in cur_msql:
    # additional operations eg.:
    if row['customer_name'] == NULL:
        row['customer_name'] = row['customer_name']
    args.append(cur_psql.mogrify("(%(customer_id)s, %(customer_name)s, %(contact_name)s, %(address)s, %(city)s, %(postal_code)s, %(country)s)", row))

args_str = ','.join(args)

它应该创建一个等价于 args_str 到:

args_str = ','.join(cur_psql.mogrify("(%(customer_id)s, %(customer_name)s, %(contact_name)s, %(address)s, %(city)s, %(postal_code)s, %(country)s)", row) for row in cur_msql)

(N.B。我把上面的x改成了row。)

那个字符串是否真的是你need/want是另一个问题。