Python数组额外逗号格式

时间:2017-01-24 14:50:46

标签: python arrays

我对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个唯一值。

2 个答案:

答案 0 :(得分:3)

看起来fetchall()正在返回一个元组:

尝试:

for i in skuArray:
    print i[0]

只获取元组的第一个元素。

答案 1 :(得分:3)

NodeList nodes = doc.getElementsByTagName("employee"); for (int i = 0; i < nodes.getLength(); i ++) { Node node = nodes.item(i); NamedNodeMap attr = node.getAttributes(); for(int j = 0 ; j<attr.getLength() ; j++) { Attr attribute = (Attr)attr.item(j); System.out.println("Current Element :" + attribute.getName()+" = "+attribute.getValue()); } } 返回行列表,如果使用默认光标,则由元组表示。如果select语句中只有一列,只需按索引获取:

fetchall()

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

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

作为旁注,您不必将查询的部分内容与sku_values = [row[0] for row in x.fetchall()] 连接 - 您可以使用Python的多行字符串,作为奖励,您将能够使用正确缩进查询以提高可读性:

+=