【问题标题】:Export Oracle database column headers with column names into csv将带有列名的 Oracle 数据库列标题导出到 csv
【发布时间】:2020-02-07 00:31:58
【问题描述】:

我正在制作一个获取列名并将数据转储为 csv 格式的程序。 现在一切正常,数据被转储到 csv 中,问题是, 我无法将标头提取到 csv 中。如果我将导出的 csv 文件打开到 excel 中,则只显示数据而不显示列标题。我该怎么做?

这是我的代码:

import cx_Oracle
import csv

dsn_tns = cx_Oracle.makedsn(--Details--)
conn = cx_Oracle.connect(--Details--)

d = conn.cursor()

csv_file = open("profile.csv", "w")
writer = csv.writer(csv_file, delimiter=',', lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC)
d.execute("""
select * from all_tab_columns where OWNER = 'ABBAS'
""")
tables_tu = d.fetchall()
for row in tables_tu:
    writer.writerow(row)

conn.close()
csv_file.close()

我也使用什么代码在 csv 中导出标题?

【问题讨论】:

  • for 循环之前试用 writer.writerow(i[0] for i in d.description)
  • 非常感谢!它工作:)
  • @MuhammadAbbas:不客气。我还发布了包含该信息的答案。
  • 对于大量行,您应该调整 cursor.arraysize 以获得最佳性能。

标签: python oracle csv export


【解决方案1】:

将其放在您的 for 循环上方:

writer.writerow(i[0] for i in d.description)

因为d.description 是一个只读属性,包含看起来像这样的 7 个元组:

(name, 
type_code, 
display_size,
internal_size, 
precision, 
scale, 
null_ok)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    相关资源
    最近更新 更多