#list
Вопрос:
Please guys,How do I iterate this list and group some keys and values based on common keys
и значения с использованием python?
У меня есть Jsonresponse, который должен использоваться API в определенном порядке. Я просмотрел эту платформу и увидел много примеров, и попробовал большинство из них безрезультатно, и решил изложить проблему здесь, чтобы вы, ребята, помогли мне. Я новичок в python.
input
[
{"id": "3", "name": "John",
"team": "corinthians", "coach": "Chris"},
{"id": "2", "name": "Ben",
"team": "palmeiras", "coach": "Aron"},
{"id": "6", "name": "Frank",
"team": "palmeiras", "coach": "Aron"},
{"id": "7", "name": "Evan",
"team": "corinthians", "coach": "Chris"},
{"id": "1", "name": "Micheal",
"team": "palmeiras", "coach": "Aron"},
{"id": "10", "name": "Zack",
"team": "santos", "coach": "David"}
]
Expected output
The players are grouped by their team and coach reducing the need of repeating a player to the same team and coach every time.
I need to present the data in this format.kindly help me out guys.Thanks
[{"players":
[{"id": "3", "name": "John"}, {"id": "7", "name": "Evan"}], "team": "corinthians",
"coach": "Chris"},
{"players": [{"id": "2", "name": "Ben"}, {"id": "6", "name": "Frank"}, {"id": "1",
"name": "Micheal"}], "team": "palmeiras", "coach": "Aron"},
{"players": [{"id": "10", "name": "Zack"}], "team": "santos", "coach": "David"}]
Ответ №1:
Этот код сохранит нужные вам выходные данные в result
переменной.
input = [
{"id": "3", "name": "John",
"team": "corinthians", "coach": "Chris"},
{"id": "2", "name": "Ben",
"team": "palmeiras", "coach": "Aron"},
{"id": "6", "name": "Frank",
"team": "palmeiras", "coach": "Aron"},
{"id": "7", "name": "Evan",
"team": "corinthians", "coach": "Chris"},
{"id": "1", "name": "Micheal",
"team": "palmeiras", "coach": "Aron"},
{"id": "10", "name": "Zack",
"team": "santos", "coach": "David"}]
result = []
teamsAdded = set()
for player in input:
if (player['team'] not in teamsAdded):
teamsAdded.add(player['team'])
result.append({"team": player['team'], "coach": player['coach'], "players": [{"id": player['id'], "name": player['name']}]})
else:
for team in result:
if team['team'] == player['team']:
team['players'].append({"id": player['id'], "name": player['name']})
Комментарии:
1. Большое вам спасибо @Tyler Liu.вы решили эту проблему за меня. Я действительно благодарен.
2. Теперь у меня есть еще одно сомнение @Тайлер Лю. Что, если бы тренер мог тренировать больше, чем команду, как бы я мог это представлять? Заранее спасибо.
3. Я считаю, что в этом случае это все равно было бы правильно. Я сменил тренера «Сантоса» на Арона, и, похоже, результат правильный. Если вы нашли мой оригинальный ответ полезным, пожалуйста, подумайте о том, чтобы проголосовать и отметить его как принятый.