MYSQL使用Python将复杂的连接输出转换为JSON

时间:2018-11-18 09:07:47

标签: javascript python mysql json database

这是锦标赛系统的示例MySQL查询。

SELECT
    tournament_game.game_identifier AS match_number,
    tournament_game.id AS match_id,
    tournament_game_round.round_number AS match_round_number,
    tournament_game_round_team.team_identifier,
    tournament_game_round_team_player.tournament_game_round_team_id,
    tournament_game_round_team_player.isHost,
    tournament_game_round_team_player.tournament_registration_id,
    user_platform_name.name AS player_name
FROM tournament_game
LEFT JOIN tournament_game_round ON tournament_game_round.tournament_game_id = tournament_game.id
LEFT JOIN tournament_game_round_team ON tournament_game_round_team.tournament_game_round_id = tournament_game_round.id
LEFT JOIN tournament_game_round_team_player ON tournament_game_round_team_player.tournament_game_round_team_id = tournament_game_round_team.id
LEFT JOIN tournament_registration ON tournament_registration.id = tournament_game_round_team_player.tournament_registration_id
LEFT JOIN user_platform_name ON user_platform_name.id = tournament_registration.user_platform_name_id
WHERE tournament_game.id = %s;

哪个输出:

1   264 0   0   125 1   66  playername1
1   264 1   0   127 0   66  playername1
1   264 0   1   126 0   69  playername2
1   264 1   1   128 1   69  playername2

我希望数据以JSON格式设置为:

{
match_id: a.match_id,
matches: [
    {
        match_number: a.match_number,
        match_rounds: [
            {
                match_round_number: a.match_round_number,
                match_round_teams: [
                    {
                        team_identifier: a.team_identifier,
                        team_players: [
                            {
                                player_name: a.player_name,
                                isHost: a.isHost,
                                rego_id: a.tournament_registration_id
                            }
                        ]
                    }
                ]
            }
        ]
    }
]
};

我可以使用非常长的丑陋且复杂的python算法获得所需的结果,但是我想知道是否存在一种可以轻松轻松地获得所需结果的方法。我确信这是学习像我这样的开发人员的常见障碍。

如果有更好的查询方法,我会不知所措。

0 个答案:

没有答案