【问题标题】:Importing csv to mysql: file name as value in column将csv导入mysql:文件名作为列中的值
【发布时间】:2019-04-16 01:54:59
【问题描述】:

我有一个文件名为:2018-10-18_trx_result.csv2018-10-11_another-file.csv。如何将我的文件名作为我的列中的值作为date format?。

示例:我导入了2018-10-18_trx_result.csv,所以2018-10-18 应该是我的date_sourced 列中的值,如下所示:

|date_sourced| sha1 | vsdt | trendx |notes|
-------------------------------------------
|2018-10-18  | SHA1 | vsdt | trendx |notes| #how can I remove the headers too?
|2018-10-18  | value| value| value  |value|
|2018-10-18  | value| value| value  |value|

这是我将 csv 导入 mysql 数据库的代码:

import csv
import mysql.connector

mydb = mysql.connector.connect(user='root', password='',
                          host='localhost',
                          database='jeremy_db')
file = open('C:\\Users\\trendMICRO\\Desktop\\OJT\\test.csv', 'rb')  
csv_data = csv.reader(file)

cursor = mydb.cursor()

for row in csv_data:
    cursor.execute('INSERT INTO jeremy_table_test(sha1, vsdt,trendx,notes )' 'VALUES(%s, %s, %s,%s)',row)

# close the connection to the database.
mydb.commit()
cursor.close()
print("Done")

另外,当我将标题上传到我的表格时,如何排除它们?

【问题讨论】:

  • 使用:date_sourced = '2018-10-18_trx_result.csv'[:10]

标签: python mysql csv


【解决方案1】:

这会有所帮助。使用'regular expression're

import re
fileName=['2018-10-18_trx_result.csv','2018-10-11_another-file.csv']
for m in fileName:
    print [re.findall("([0-9]{4}\-[0-9]{2}\-[0-9]{2})", m)[0], m]

结果:

['2018-10-18', '2018-10-18_trx_result.csv']
['2018-10-11', '2018-10-11_another-file.csv']

【讨论】:

  • 我认为这是一个很好的解决方案,但是它不能只获取日期
  • 好的,我现在已经修改了。看看并说出你的想法
  • 谢谢,现在我可以获取日期格式了,我现在的问题是如何插入它
猜你喜欢
  • 2013-08-21
  • 1970-01-01
  • 2013-05-06
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多