我对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个唯一值。
答案 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的多行字符串,作为奖励,您将能够使用正确缩进查询以提高可读性:
+=