如何将sql语句转换为json

时间:2018-06-11 10:59:14

标签: python sql json

我期待this website使用insert和create语句来获取json结构。在python中有没有相同的方法将具有insert和create语句的sql查询转换为json格式。

实施例: SQL查询:

/**
 * Continents 
 */
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `continents`
-- ----------------------------
DROP TABLE IF EXISTS `continents`;
CREATE TABLE `continents` (
  `code` char(2) NOT NULL COMMENT 'Continent code',
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

-- ----------------------------
-- Records of continents
-- ----------------------------
INSERT INTO `continents` VALUES ('AF', 'Africa');
INSERT INTO `continents` VALUES ('AN', 'Antarctica');
INSERT INTO `continents` VALUES ('AS', 'Asia');
INSERT INTO `continents` VALUES ('EU', 'Europe');
INSERT INTO `continents` VALUES ('NA', 'North America');
INSERT INTO `continents` VALUES ('OC', 'Oceania');
INSERT INTO `continents` VALUES ('SA', 'South America');
INSERT INTO `continents` VALUES ('??', NULL);

JSON结构:

{
  "continents": [
    {
      "code": "AF",
      "name": "Africa"
    },
    {
      "code": "AN",
      "name": "Antarctica"
    },
    {
      "code": "AS",
      "name": "Asia"
    },
    {
      "code": "EU",
      "name": "Europe"
    },
    {
      "code": "NA",
      "name": "North America"
    },
    {
      "code": "OC",
      "name": "Oceania"
    },
    {
      "code": "SA",
      "name": "South America"
    },
    {
      "code": "??",
      "name": null
    }
  ]
}

1 个答案:

答案 0 :(得分:0)

是的,当然是可能的 - 如果有人带着一种语言的工作实现,那么任何图灵完整的语言都可能。

现在你有两种可能的方法来解决这个问题。第一个是写一个完整的" SQL2json"解析器/标记器/解释器(您可以阅读有关如何执行此操作的更多编程语言实现),它将解析SQL源代码并生成匹配的json文本作为结果,或者更简单地说,您可以针对数据库执行SQL源,然后使用python DB-API连接器查询数据库,并从查询结果生成一个dicts列表(使用DictCursor将使其变得轻而易举)并使用json模块对其进行序列化。