Перейти к содержимому

Конвертер SQL-результатов в JSON

Конвертируйте результаты SQL-запросов (вывод MySQL/PostgreSQL CLI) в JSON. Поддерживает форматы с разделителями табуляции и pipe.

Об этом инструменте

SQL to JSON Converter превращает таблицу, которую MySQL или PostgreSQL выводят в вашем терминале, в аккуратный массив JSON. Вместо того чтобы вручную перенабирать результаты запросов из консоли, вы получаете структурированные данные, которые можно сразу вставить в API, фикстуры или скрипты.

Вставьте таблицу результатов из CLI, и инструмент вернёт массив JSON, в котором каждая строка становится объектом с именами столбцов в качестве ключей. Это удобно для заполнения тестовыми данными, быстрого создания заглушек API или переноса вывода запроса в код без клиента базы данных.

Он принимает вывод таблиц как с разделением табуляцией, так и с разделением вертикальной чертой, поэтому работают оба формата CLI — и MySQL, и PostgreSQL. Всё выполняется локально в вашем браузере, поэтому данные ваших запросов никогда никуда не загружаются.

Часто задаваемые вопросы

Реализация кода

import json
import re

def parse_mysql_output(text):
    """Parse MySQL CLI pipe-separated output to JSON."""
    lines = text.strip().splitlines()
    # Filter out separator lines (+---+) and empty lines
    data_lines = [l for l in lines if l.strip() and not re.match(r'^\s*[+\-]+', l)]
    if len(data_lines) < 2:
        return []

    # Split by pipe and strip whitespace
    def split_row(line):
        return [c.strip() for c in line.split('|') if c.strip() != '']

    headers = split_row(data_lines[0])
    rows = [split_row(l) for l in data_lines[1:]]

    return [dict(zip(headers, row)) for row in rows]

# Example: MySQL output
mysql_output = """
+----+-------+-------+
| id | name  | score |
+----+-------+-------+
|  1 | Alice |    95 |
|  2 | Bob   |    87 |
+----+-------+-------+
"""

result = parse_mysql_output(mysql_output)
print(json.dumps(result, indent=2))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.