[英]remove last comma from dictionary/list
我正在嘗試使用python生成腳本,該腳本在redshift中生成卸載命令。 我不是專家Python程序員。 我需要在哪里可以生成卸載列表的所有列。 如果該列是特定名稱,則需要用一個函數替換。 我面臨的挑戰是在字典的最后一項后面加上“,”。 有什么辦法可以避免最后一個逗號? 任何幫助,將不勝感激。
import psycopg2 from psycopg2.extras
import RealDictCursor
try:
conn = psycopg2.connect("dbname='test' port='5439' user='scott' host='something.redshift.amazonaws.com' password='tiger'");
except:
print "Unable to connect to the database"
conn.cursor_factory = RealDictCursor
cur = conn.cursor()
conn.set_isolation_level( psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT )
try:
cur.execute("SELECT column from pg_table_def where schema_name='myschema' and table_name ='tab1' " );
except:
print "Unable to execute select statement from the database!"
result = cur.fetchall()
print "unload mychema.tab1 (select "
for row in result:
for key,value in row.items():
print "%s,"%(value)
print ") AWS Credentials here on..."
conn.close()
在每一行的值列表上使用聯接函數:
print ",".join(row.values())
簡而言之,join函數是在我們可以認為是“膠水”的字符串上調用的,並且將“件”列表作為其參數。 結果是由“膠水”“保持在一起”的一串“碎片”。 例:
>>> glue = "+"
>>> pieces = ["a", "b", "c"]
>>> glue.join(pieces)
"a+b+c"
(由於row.values()返回一個列表,因此您實際上不需要理解,因此它比我最初寫的還要簡單)
實際上,這種方法效果更好。
columns = []
for row in result:
if (row['column_name'] == 'mycol1') or (row['column_name'] == 'mycol2') :
columns.append("func_sha1(" + row['column_name'] + "||" + salt +")")
else:
columns.append(row['column_name'])
print selstr + ",".join(columns)+" ) TO s3://"
謝謝您的幫助,喬恩
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.