背景
csv一般以逗号分隔字段,这个从sqlite3导出的grafana数据库以 | 分隔字段。。做法是逐条读取csv的数据,拼接成sql语句,通过MySQLdb库执行数据库操作。
在执行的过程中发现有某些csv数据被意外截断的情况,是因为某些字段存储的是json字符串,中间的逗号和分号造成字符串意外分成两个或者多个,所以还需要循环拼接一下才能还原出完整的sql语句。
在插入的时候发现主键总是出现状况,首先是变量类型,其次是值会重复,于是直接加了个i变量充当主键。。虽说暴力了点但是it’s works。
目前还有的问题是在导入某个字段有超级长的json,里面还包含转义字符串的时候,会错误,本来想通过在拼接的时候用三对引号包裹每个字段的方式解决,但是没成功。。
1 | # -*- coding: UTF-8 -*- |