为了在MySQL中快速插入我的数据,我决定采用我拥有的6200个JSON文件(每个文件大约有200K行)并将它们转换为CSV。然后,我想使用LOAD DATA INFILE在MySQL中快速插入所有CSV。这就是我到目前为止所做的事情:
myList = []
path = *some path to my files*
for filename inglob.glob(os.path.join(path, '*.JSON')):
with open(filename) as json_data:
j = json.load(json_data)
for i in j["rows"]:
user_id = i["values"][0][0]
birthday = int(float(i["values"][0][1])/1000)
gender = str(epoch_timestamp)
age = i["values"][0][2]
eye_color = i["values"][0][3]
data = (user_id, birthday, gender, age, eye_color)
myList.append(data)
fn = '/Users/srayan/Desktop/myCSV.csv'
with open(fn,'w') as out:
writer = csv.writer(out)
writer.writerows(myList)
我的问题是,通过每行,10亿行JSON中的单个行是非常低效的 - 有没有什么方法可以从JSON获取行数据而不必迭代每一行?或者是否有人知道比从JSON更快的方法 - > CSV - >加载到MySQL的INFILE?提前谢谢。