Skip to main content
 首页 » 编程设计

Python 数组额外逗号格式

2025年05月04日15birdshome

我是 Python 的新手,我对这个问题做了一些研究,但我似乎找不到答案。

我有一个发送到数组的选择查询(Python 2.7)

query = "SELECT catalog_product_entity.sku " 
query = query+"FROM catalog_product_entity " 
query = query+"INNER JOIN catalog_product_entity_decimal " 
query = query+"ON catalog_product_entity_decimal.entity_id = catalog_product_entity.entity_id " 
query = query+"INNER JOIN catalog_product_entity_int " 
query = query+"ON catalog_product_entity_int.entity_id = catalog_product_entity.entity_id " 
query = query+"WHERE catalog_product_entity.sku IS NOT NULL " 
query = query+"AND catalog_product_entity_int.attribute_id = '84'" 
x = myconn.cursor() 
x.execute(query) 
skuArray = x.fetchall() 
for i in skuArray: 
    print i 

查询成功但显示为:('000381001238',),

如何格式化数组以显示为 ('000381001238'),?

我也试过这个:

for i in skuArray: 
    prodSku = [i[0] for  in x.fetchall()] 
    print prodSku  

关于性能的旁注,这个查询有超过 8000 个唯一值。

请您参考如下方法:

fetchall() 返回一个行列表,如果使用默认游标,则由元组表示。如果在 select 语句中只有一个列,只需通过索引获取它:

for row in x.fetchall(): 
    print(row[0]) 

或者,如果您需要收集列表中的列值:

sku_values = [row[0] for row in x.fetchall()] 

作为旁注,您不必使用 += 连接部分查询 - 您可以使用 Python 的多行字符串,作为奖励,您'将能够正确缩进您的查询以提高可读性:

query = """ 
    SELECT catalog_product_entity.sku 
    FROM catalog_product_entity 
        INNER JOIN catalog_product_entity_decimal ON catalog_product_entity_decimal.entity_id = catalog_product_entity.entity_id 
            INNER JOIN catalog_product_entity_int ON catalog_product_entity_int.entity_id = catalog_product_entity.entity_id  
    WHERE catalog_product_entity.sku IS NOT NULL  
          AND catalog_product_entity_int.attribute_id = '84' 
"""