MySQL 如何导入 JSON 数据到 MySQL 中
MySQL是一种关系型数据库管理系统。随着大量的数据被存储,将 JSON 数据导入 MySQL 中成为一种常见的需求。本文将探讨如何导入 JSON 数据到 MySQL 中。
阅读更多:MySQL 教程
数据准备
在导入 JSON 数据到 MySQL 之前,我们需要准备好一些数据。首先,我们需要生成 JSON 格式的数据。我们可以使用 Python 生成大量的 JSON 数据,例如:
import json
import random
data = []
for i in range(10):
d = {'id': i, 'name': f'name{i}', 'age': random.randint(18, 60)}
data.append(d)
with open('data.json', 'w') as f:
json.dump(data, f)
现在,我们已经生成了一个名为 data.json 的文件,其中包含 10 条记录。
[
{"id": 0, "name": "name0", "age": 44},
{"id": 1, "name": "name1", "age": 36},
{"id": 2, "name": "name2", "age": 50},
{"id": 3, "name": "name3", "age": 47},
{"id": 4, "name": "name4", "age": 58},
{"id": 5, "name": "name5", "age": 31},
{"id": 6, "name": "name6", "age": 55},
{"id": 7, "name": "name7", "age": 52},
{"id": 8, "name": "name8", "age": 29},
{"id": 9, "name": "name9", "age": 28}
]
导入数据
创建表
在导入 JSON 数据之前,我们需要先创建一个表。我们可以使用以下语句创建一个名为 users 的表,并添加三个字段 id、name 和 age:
CREATE TABLE users (
id INT,
name VARCHAR(50),
age INT
);
导入数据
在创建表之后,我们可以使用 LOAD DATA 关键词直接将 JSON 文件导入到表中。以下是一个基本的 LOAD DATA 语句:
LOAD DATA INFILE '/path/to/data.json'
INTO TABLE users
在这个例子中,/path/to/data.json 是我们生成的 JSON 文件的路径。这个语句将文件的内容导入到 users 表中。
然而,由于默认情况下 MySQL 并不支持直接导入 JSON 格式的数据,我们需要使用 JSON 方法将 JSON 字符串转化为 MySQL 中的数据类型。以下是一个能够正确导入 JSON 的 LOAD DATA 语句:
LOAD DATA INFILE '/path/to/data.json'
INTO TABLE users
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(@id, @name, @age)
SET id = JSON_EXTRACT(@id, ".id"),
name = JSON_EXTRACT(@name, ".name"),
age = JSON_EXTRACT(@age, "$.age");
在这个语句中,我们使用了 JSON_EXTRACT 函数将 JSON 字符串转化为具体的数据类型,然后将其插入到 users 表中。
总结
通过这篇文章的学习,我们了解到了如何将 JSON 数据导入到 MySQL 中。我们需要先生成 JSON 文件,然后在创建表之后使用 LOAD DATA 将其导入到 MySQL 中,并使用 JSON_EXTRACT 函数将 JSON 字符串转化为 MySQL 中的数据类型。
极客笔记