python转换cs

2024-04-25 19:28:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将一个CSV文件转换成一个SQL查询,我有这个输出。你能推荐一下如何避免这个麻烦吗

我的代码是:

import csv
import unicodedata

openFile = open('region_mapping.csv', 'r')
csvFile = csv.reader(openFile)
header = next(csvFile)
headers = map((lambda x: '`'+x+'`'), header)
insert = 'INSERT INTO Table (' + ", ".join(headers) + ") VALUES "
for row in csvFile:
    values = map((lambda x: '"'+x+'"'), row)
    print (insert +"("+ ", ".join(values) +");" )
openFile.close()

输出:

INSERT INTO toolbox.region ( province_name;min_order_price;region_name ) VALUES ( '��������� ����;10000;4 ���� (��������� ������)' );

该文件的一个示例是:

province_name,min_order_price,region_name
Алтайский край,10000,4 зона (Восточная Сибирь)

Tags: 文件csvcsvfilelambdanameimportmapregion
1条回答
网友
1楼 · 发布于 2024-04-25 19:28:28

为文件添加正确的编码可以正确打印,但是“正确打印”假定使用适当的控制台或IDE编码以及带有可用字符的字体。如果使用Windows,我建议使用python3.6。它修复了打印到控制台的问题,但是您仍然需要支持打印字符的字体

注意:您的文件编码可能会有所不同。除非提供文件内容的hexdump,否则很难判断。由于您没有收到UnicodeDecodeError,您可能有正确的编码,但不支持西里尔文的错误字体或标准输出编码

import csv

openFile = open('region_mapping.csv', 'r', encoding='utf8')
csvFile = csv.reader(openFile)
header = next(csvFile)
headers = map((lambda x: '`'+x+'`'), header)
insert = 'INSERT INTO Table (' + ", ".join(headers) + ") VALUES "
for row in csvFile:
    values = map((lambda x: '"'+x+'"'), row)
    print (insert +"("+ ", ".join(values) +");" )
openFile.close()

输入:

province_name,min_order_price,region_name
Алтайский край,10000,4 зона (Восточная Сибирь)

输出:

INSERT INTO Table (`province_name`, `min_order_price`, `region_name`) VALUES ("Алтайский край", "10000", "4 зона (Восточная Сибирь)");

输出与您的不匹配,因此我怀疑不是所显示代码的输出,或者不是您使用的确切代码

相关问题 更多 >

    热门问题