我有一个来自 MediaWiki 的 SQL 转储,我想将其导出为 JSON - 我尝试了不同的方法,但似乎找不到任何解决方案。 sql 文件如下所示:
DROP TABLE IF EXISTS `geo_tags`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `geo_tags` (
`gt_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`gt_page_id` int(10) unsigned NOT NULL,
`gt_globe` varbinary(32) NOT NULL,
`gt_primary` tinyint(1) NOT NULL,
`gt_lat` decimal(11,8) DEFAULT NULL,
`gt_lon` decimal(11,8) DEFAULT NULL,
`gt_dim` int(11) DEFAULT NULL,
`gt_type` varbinary(32) DEFAULT NULL,
`gt_name` varbinary(255) DEFAULT NULL,
`gt_country` binary(2) DEFAULT NULL,
`gt_region` varbinary(3) DEFAULT NULL,
PRIMARY KEY (`gt_id`),
KEY `gt_page_primary` (`gt_page_id`,`gt_primary`),
KEY `gt_page_id_id` (`gt_page_id`,`gt_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4507036 DEFAULT CHARSET=binary ROW_FORMAT=DYNAMIC;
后面是几行 INSERT INTO。
INSERT INTO `geo_tags` VALUES (3,487781,'earth',1,59.00000000,10.00000000,1000,NULL,NULL,NULL,NULL)
每当我尝试将 sql 文件导入 SQL 时,什么也没有发生。有没有简单的解决方案可以将我的数据转换为 JSON?
作为答案发布,因为我无法在评论中发布图像。 http://www.csvjson.com/sql2json 似乎可以很好地处理几行。也许它有一些限制?
您要插入多少条记录?
更新 Rockstar Martin Drapeau,csvjson.com 背后的人,刚刚实现了我的功能请求,所以现在 mysqldump INSERT 语法将在他的网站上运行。尝试一下这里。
您可以使用命令行工具代替 Web 服务:
# or install via pip
$ pipx install sqldump2json
# each insert statement converts to json object (JSONL)
$ sqldump2json -i testdata/dump.sql
{"table_name": "actor", "values": [1, "PENELOPE", "GUINESS", "2006-02-15 04:34:33"]}
{"table_name": "actor", "values": [2, "NICK", "WAHLBERG", "2006-02-15 04:34:33"]}
{"table_name": "actor", "values": [3, "ED", "CHASE", "2006-02-15 04:34:33"]}
...
# use jq to process json lines
$ sqldump2json -i testdata/dump.sql | jq -r 'select(.table_name == "actor").values | @tsv'
1 PENELOPE GUINESS 2006-02-15 04:34:33
2 NICK WAHLBERG 2006-02-15 04:34:33
3 ED CHASE 2006-02-15 04:34:33