我正在编写一个Python脚本来解析目录中的csv文件,并为找到的每个文件输出SQL CREATE TABLE语句。
directory = os.fsencode(".")
for file in os.listdir(directory):
filename = os.fsdecode(file)
if filename.endswith(".csv"):
f = open(filename, 'r', encoding="iso-8859-1")
dialect = csv.Sniffer().sniff(f.read(4096))
f.seek(0)
reader = csv.reader(f, dialect)
我的数据的一个简单示例如下:
ID|Text1|Text2|Year
"123"|"more data"|"A pipe symbol | typed by an end user"|"2014"
包含双引号以防止将用户键入的管道解释为定界符。
以下是嗅探器作为我的实际数据的方言返回的内容:
['delimiter', 'doublequote', 'escapechar', 'lineterminator', 'quotechar', 'quoting', 'skipinitialspace']
['|', False, None, '\r\n', '"', 0, False]
我正在尝试使用适应于此的代码来处理数据中的值: https://www.periscopedata.com/blog/python-create-table
所有列均返回varchar,除第一列和最后列以外的所有列均返回varchar(0)。
我在想这是因为嗅探器没有为'doublequote'返回正确的值。