我有一个这样的数据已存储在文件中:
name last_name class
b bc ['1','2','3']
现在我想将其插入MySql中的表中,我希望输出如下所示:(id是一个自动递增字段)
id name last_name class
1 b bc 1
2 b bc 2
3 b bc 3
到目前为止,我能够提出以下代码,但是它将整个列表存储在一个单元格中:
result=('C://heli.csv')
count=0
db = MySQLdb.connect("127.0.0.1", "root", "****", "myblog", local_infile=True,use_unicode=True, charset="utf8")
cursor = db.cursor()
cursor.execute("LOAD DATA LOCAL INFILE '%s' INTO TABLE dru FIELDS TERMINATED by '$' LINES TERMINATED BY '\n' (keyword,indication,name,dr_id,synonyms) SET id = NULL" % (result,))
db.commit()
count += 1
db.close()
print(count)
是否有可能像我感兴趣的那样分离出列表的值?
实际数据如下所示:
coronary syndrome$for treatment $bivalirudin$['db00006', 'btd00076', 'expt03302', 'biod00076', 'db02351']$['bivalirudina', 'bivalirudinum', 'hirulog'
]
答案 0 :(得分:0)
我最近在MySQL中做到了这一点。 绝对不是最佳解决方案,但是它将带您到达那里。
如果您可以将原始数据放入MySQL表中,则可以使用SubString分离出每个类,然后插入到新表中。
例如
select
name,
last_name,
Substring_index(Substring_index(class, ',', 1), ',', -1) as class
from data;
将产生-
name last_name class
b bc 1
完整代码在这里-