首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在将csv导入到db之前跳过第一行并删除某些字符

在将csv导入到db之前跳过第一行并删除某些字符
EN

Stack Overflow用户
提问于 2018-11-15 05:40:34
回答 2查看 430关注 0票数 0

我是Python新手,我的任务是将csv导入mysql数据库。我在csv文件中有以下示例值:

代码语言:javascript
运行
复制
SHA1,VSDT,TRX
005c41fc0f8580f51644493fcbaa0d2d468312c3,(WIN32 (EXE 7-2)),Ransom.Win32.TRX.XXPE50FFF027,
006ea7ce2768fa208ec7dfbf948bffda9da09e4e,WIN32 EXE 2-2,TROJ.Win32.TRX.XXPE50FFF027,

这里的问题是,在导入到数据库之前,如何只在第二列字符串的起始点和结束点删除"( "")"

我有以下代码来导入csv

代码语言:javascript
运行
复制
import csv
import mysql.connector
file = open(fullPath, 'rb')  
csv_data = csv.reader(file)

mycursor = mydb.cursor()
cursor = mydb.cursor()
for row in csv_data:
cursor.execute('INSERT INTO jeremy_table_test(sha1,vsdt,trendx)'
               'VALUES(%s, %s, %s)',[(row[0]),(row[1]),(row[2]))
mydb.commit()
cursor.close()
print("Done")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-15 05:54:56

MySQL LOAD DATA工具可能可以在这里做您想做的事情。下面是LOAD DATA调用的样子:

代码语言:javascript
运行
复制
LOAD DATA INFILE 'path/to/rb'
INTO TABLE jeremy_table_test
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n' -- or '\n'
IGNORE 1 LINES
(sha1, @var1, trendx)
SET vsdt = TRIM(TRAILING ')' FROM TRIM(LEADING '(' FROM @var1));

要从Python代码中进行此调用,您可以尝试如下所示:

代码语言:javascript
运行
复制
query = "LOAD DATA INFILE 'path/to/rb' INTO TABLE jeremy_table_test FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (sha1, @var1, trendx) SET vsdt = TRIM(TRAILING ')' FROM TRIM(LEADING '(' FROM @var1))"
cursor.execute(query)
connection.commit()
票数 1
EN

Stack Overflow用户

发布于 2018-11-15 05:49:25

阅读时跳过行,而不是在写入时跳过行。

代码语言:javascript
运行
复制
with open(fullPath, 'rb') as file:
    csv_data = csv.reader(file)
    next(csv_data)
    mycursor = mydb.cursor()
    cursor = mydb.cursor()
    for row in csv_data:
            cursor.execute('INSERT INTO jeremy_table_test(sha1,vsdt,trendx)'
                'VALUES(%s, %s, %s)',[(row[0]),(row[1]),(row[2]))
    mydb.commit()
    cursor.close()
    print("Done")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53313098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档