こういう記事を書きました。
ポケモン剣盾のランクバトルのバトルデータをMetabaseで可視化する。 - Qiita
JSONからだとアプリから参照できないポケモンの情報も参照できるので、1人しか使ってなさそうなポケモンもいくつか検索にひっかかります。
ダブルバトルでコロモリとか何に使うのかめちゃくちゃ興味があります。他にもそういうポケモンがいそうでわくわくしたので、Metabaseで検索してみることにしました。
JSONを加工してCSVにする
わざ・とくせい・もちもののデータをそれぞれ別のテーブルに保存するため、それぞれを別々のCSVに変換します。
Python3を使っています。
import json
pokedex = ""
# https://resource.pokemon-home.com/battledata/js/bundle.js の図鑑と持ち物情報を抜き出してjsonにしたものを読み込む
with open("./bundle.json", "r") as json_open:
pokedex = json.load(json_open)
pdetail = ""
# https://resource.pokemon-home.com/battledata/ranking/{シングル or ダブルのID}/{rstの値}/{ts2の値}/pdetail-{1から5} をcatで全部連結させたjsonを読み込む
# 私はダブルバトルのプレイヤーなので、ダブルバトルのJSONだけ使っています。
with open("./pdetail-1-5.json", "r") as json_open:
pdetail = json.load(json_open)
waza_str = ""
item_str = ""
tokusei_str = ""
for pokenum in pdetail.keys():
for p_detail_id in pdetail[pokenum].keys():
name = pokedex["poke"][int(pokenum) -1]
if p_detail_id != "0": # 0以外はフォルム・性別・リージョンetc違いなので分けて扱う。わざをみればどのフォームか分かるので数字だけでも特に問題ない。
name = name + p_detail_id
for pokewaza in pdetail[pokenum][p_detail_id]["temoti"]["waza"]:
waza_str = waza_str + name + "," + pokedex["waza"][pokewaza["id"]] + "," + pokewaza["val"] + "\n"
for pokeitem in pdetail[pokenum][p_detail_id]["temoti"]["motimono"]:
item_str = item_str + name + "," + pokedex["item"][pokeitem["id"]] + "," + pokeitem["val"] + "\n"
for poketokusei in pdetail[pokenum][p_detail_id]["temoti"]["tokusei"]:
tokusei_str = tokusei_str + name + "," + pokedex["tokusei"][poketokusei["id"]] + "," + poketokusei["val"] + "\n"
with open("waza.csv", mode='w') as f:
f.write(waza_str)
with open("item.csv", mode='w') as f:
f.write(item_str)
with open("tokusei.csv", mode='w') as f:
f.write(tokusei_str)
CSVをSQLite3に変換
$ sqlite3 double_move.db
sqlite> create table move(name text, move text, adoption_rate real); # わざテーブルの作成
sqlite> .mode csv
.import ./waza.csv move
# item, tokuseiも同様のテーブルを作成してインポートする
作ったDBをmetabaseに読み込む
Qiitaの記事と同じなので割愛。
1人しか使ってなさそうなポケモンを探す
推理が雑ですが、とくせいともちものの採用率が100%、かつ、使われてるわざの数が4から6なら、使ってる人が1人(もしくはその人のレンタルパ)と言えそうです。
3つのテーブルをjoinして検索します。
全部joinしてフィルターをかけるとこんな感じ。
たまもちのコイキングとかいう気が狂ってるとしか思えないのがいますね。どういう構築なんだこれ。
このワンリキーはカ・エールさんの究極激可愛運勝ビートのワンリキーですね。すごい。
6/12のデータを検索したところ、ダブルバトルで1人しかつかってなさそうなポケモンは以下であることがわかりました。
(型が1つしかなさそうなポケモンもいるので、実際は1人かどうかはわからないです)
ロコンはアローラで、ダルマッカはガラルですね。バスラオはJSONの中を見ないとどっちがどっちかわかんねえな。
ホエルコは究極激可愛運勝ビートのホエルコですね。
みんな個性的で面白いなと思います。
ポケモンの名前 とくせい とくせいの採用率 もちもの もちものの採用率 わざ わざの採用率
フシギソウ ようりょくそ 100 しんかのきせき 100 てだすけ 100
フシギソウ ようりょくそ 100 しんかのきせき 100 ねむりごな 100
フシギソウ ようりょくそ 100 しんかのきせき 100 まもる 100
フシギソウ ようりょくそ 100 しんかのきせき 100 やどりぎのタネ 47.1
フシギソウ ようりょくそ 100 しんかのきせき 100 ギガドレイン 52.9
ロコン1 ゆきふらし 100 しんかのきせき 100 こおりのつぶて 100
ロコン1 ゆきふらし 100 しんかのきせき 100 つぶらなひとみ 100
ロコン1 ゆきふらし 100 しんかのきせき 100 オーロラベール 100
ロコン1 ゆきふらし 100 しんかのきせき 100 フリーズドライ 100
クサイハナ ようりょくそ 100 しんかのきせき 100 あまえる 87.5
クサイハナ ようりょくそ 100 しんかのきせき 100 ちからをすいとる 12.5
クサイハナ ようりょくそ 100 しんかのきせき 100 ねむりごな 100
クサイハナ ようりょくそ 100 しんかのきせき 100 ギガドレイン 100
クサイハナ ようりょくそ 100 しんかのきせき 100 ヘドロばくだん 100
ワンリキー ノーガード 100 しんかのきせき 100 はたきおとす 100
ワンリキー ノーガード 100 しんかのきせき 100 ばくれつパンチ 100
ワンリキー ノーガード 100 しんかのきせき 100 れいとうパンチ 100
ワンリキー ノーガード 100 しんかのきせき 100 バレットパンチ 100
コイキング びびり 100 いのちのたま 100 じたばた 100
コイキング びびり 100 いのちのたま 100 たいあたり 100
コイキング びびり 100 いのちのたま 100 とびはねる 100
コイキング びびり 100 いのちのたま 100 ハイドロポンプ 100
ピチュー ひらいしん 100 きあいのタスキ 100 てだすけ 100
ピチュー ひらいしん 100 きあいのタスキ 100 ねこだまし 100
ピチュー ひらいしん 100 きあいのタスキ 100 ほっぺすりすり 100
ピチュー ひらいしん 100 きあいのタスキ 100 リフレクター 100
イノムー あついしぼう 100 こだわりハチマキ 100 いわなだれ 100
イノムー あついしぼう 100 こだわりハチマキ 100 こおりのつぶて 100
イノムー あついしぼう 100 こだわりハチマキ 100 つららおとし 100
イノムー あついしぼう 100 こだわりハチマキ 100 10まんばりき 100
ホエルコ みずのベール 100 こだわりメガネ 100 しおふき 100
ホエルコ みずのベール 100 こだわりメガネ 100 れいとうビーム 100
ホエルコ みずのベール 100 こだわりメガネ 100 ハイドロポンプ 100
ホエルコ みずのベール 100 こだわりメガネ 100 ハイパーボイス 100
ヒンバス どんかん 100 きあいのタスキ 100 さいみんじゅつ 100
ヒンバス どんかん 100 きあいのタスキ 100 ひかりのかべ 100
ヒンバス どんかん 100 きあいのタスキ 100 ふぶき 100
ヒンバス どんかん 100 きあいのタスキ 100 れいとうビーム 100
ヨマワル おみとおし 100 しんかのきせき 100 かげうち 100
ヨマワル おみとおし 100 しんかのきせき 100 てだすけ 100
ヨマワル おみとおし 100 しんかのきせき 100 サイドチェンジ 78.6
ヨマワル おみとおし 100 しんかのきせき 100 トリックルーム 100
ヨマワル おみとおし 100 しんかのきせき 100 ナイトヘッド 21.4
ビークイン きんちょうかん 100 バンジのみ 100 とどめばり 100
ビークイン きんちょうかん 100 バンジのみ 100 とんぼがえり 100
ビークイン きんちょうかん 100 バンジのみ 100 まもる 100
ビークイン きんちょうかん 100 バンジのみ 100 クロスポイズン 100
ゴンベ あついしぼう 100 しんかのきせき 100 じばく 100
ゴンベ あついしぼう 100 しんかのきせき 100 のしかかり 100
ゴンベ あついしぼう 100 しんかのきせき 100 ばかぢから 100
ゴンベ あついしぼう 100 しんかのきせき 100 れいとうパンチ 100
ガントル くだけるよろい 100 じゃくてんほけん 100 いわなだれ 100
ガントル くだけるよろい 100 じゃくてんほけん 100 じだんだ 100
ガントル くだけるよろい 100 じゃくてんほけん 100 だいばくはつ 100
ガントル くだけるよろい 100 じゃくてんほけん 100 まもる 100
コロモリ てんねん 100 しんかのきせき 100 ふういん 100
コロモリ てんねん 100 しんかのきせき 100 まもる 100
コロモリ てんねん 100 しんかのきせき 100 サイドチェンジ 100
コロモリ てんねん 100 しんかのきせき 100 トリックルーム 100
モンメン いたずらごころ 100 ねらいのまと 100 おきみやげ 100
モンメン いたずらごころ 100 ねらいのまと 100 すいとる 20
モンメン いたずらごころ 100 ねらいのまと 100 すりかえ 100
モンメン いたずらごころ 100 ねらいのまと 100 てだすけ 100
モンメン いたずらごころ 100 ねらいのまと 100 グラスフィールド 80
バスラオ てきおうりょく 100 しんぴのしずく 100 あばれる 100
バスラオ てきおうりょく 100 しんぴのしずく 100 いのちがけ 100
バスラオ てきおうりょく 100 しんぴのしずく 100 アクアジェット 100
バスラオ てきおうりょく 100 しんぴのしずく 100 アクアブレイク 100
バスラオ1 てきおうりょく 100 きあいのタスキ 100 しっぽをふる 100
バスラオ1 てきおうりょく 100 きあいのタスキ 100 だくりゅう 100
バスラオ1 てきおうりょく 100 きあいのタスキ 100 みずびたし 100
バスラオ1 てきおうりょく 100 きあいのタスキ 100 アクアジェット 100
ダルマッカ1 はりきり 100 しろいハーブ 100 ばかぢから 100
ダルマッカ1 はりきり 100 しろいハーブ 100 まもる 100
ダルマッカ1 はりきり 100 しろいハーブ 100 れいとうパンチ 100
ダルマッカ1 はりきり 100 しろいハーブ 100 フレアドライブ 100
バチュル ふくがん 100 きあいのタスキ 100 いとをはく 100
バチュル ふくがん 100 きあいのタスキ 100 いやなおと 100
バチュル ふくがん 100 きあいのタスキ 100 ふいうち 100
バチュル ふくがん 100 きあいのタスキ 100 むしのていこう 100
テッシード てつのトゲ 100 しんかのきせき 100 てっぺき 100
テッシード てつのトゲ 100 しんかのきせき 100 はたきおとす 100
テッシード てつのトゲ 100 しんかのきせき 100 まもる 100
テッシード てつのトゲ 100 しんかのきせき 100 やどりぎのタネ 100
ジヘッド はりきり 100 しんかのきせき 100 かみくだく 100
ジヘッド はりきり 100 しんかのきせき 100 げきりん 100
ジヘッド はりきり 100 しんかのきせき 100 こおりのキバ 83.3
ジヘッド はりきり 100 しんかのきせき 100 ばかぢから 100
ジヘッド はりきり 100 しんかのきせき 100 ほのおのキバ 16.7
ヤンチャム きもったま 100 しんかのきせき 100 ともえなげ 100
ヤンチャム きもったま 100 しんかのきせき 100 まもる 100
ヤンチャム きもったま 100 しんかのきせき 100 ドレインパンチ 100
ヤンチャム きもったま 100 しんかのきせき 100 ビルドアップ 100
シルヴァディ5 ARシステム 100 ロックメモリ 100 つるぎのまい 100
シルヴァディ5 ARシステム 100 ロックメモリ 100 アイアンヘッド 100
シルヴァディ5 ARシステム 100 ロックメモリ 100 サイコファング 100
シルヴァディ5 ARシステム 100 ロックメモリ 100 マルチアタック 100
シルヴァディ15 ARシステム 100 ドラゴンメモリ 100 くさのちかい 100
シルヴァディ15 ARシステム 100 ドラゴンメモリ 100 だいばくはつ 100
シルヴァディ15 ARシステム 100 ドラゴンメモリ 100 つるぎのまい 100
シルヴァディ15 ARシステム 100 ドラゴンメモリ 100 まもる 100
ジャランゴ ぼうおん 100 しんかのきせき 100 まもる 100
ジャランゴ ぼうおん 100 しんかのきせき 100 アイアンヘッド 93.8
ジャランゴ ぼうおん 100 しんかのきせき 100 ドラゴンクロー 6.3
ジャランゴ ぼうおん 100 しんかのきせき 100 ドレインパンチ 100
ジャランゴ ぼうおん 100 しんかのきせき 100 ビルドアップ 100
ヒバニー リベロ 100 こだわりハチマキ 100 たいあたり 14.3
ヒバニー リベロ 100 こだわりハチマキ 100 とびはねる 85.7
ヒバニー リベロ 100 こだわりハチマキ 100 とびひざげり 98.4
ヒバニー リベロ 100 こだわりハチマキ 100 なきごえ 14.3
ヒバニー リベロ 100 こだわりハチマキ 100 ふいうち 98.4
ヒバニー リベロ 100 こだわりハチマキ 100 ブレイズキック 85.7
ラビフット リベロ 100 いのちのたま 100 すてみタックル 83.3
ラビフット リベロ 100 いのちのたま 100 とびひざげり 83.3
ラビフット リベロ 100 いのちのたま 100 とんぼがえり 16.7
ラビフット リベロ 100 いのちのたま 100 ふいうち 16.7
ラビフット リベロ 100 いのちのたま 100 ダストシュート 100
ラビフット リベロ 100 いのちのたま 100 フレアドライブ 100
今回はSQL書いたほうが早そうでしたが、こういうデータが簡単にとれるのでMetabaseは便利ですね。
追記
とくせい(もしくはもちもの)だけ途中で変えてわざは同じってパターンもありそうなので、フィルターを追加した方が良さそうですね。
ドラメシヤはこんな感じなので、使ってる人が同じに見えました。
ドラメシヤ 92.3 のろわれボディ 100 きあいのタスキ 100 てだすけ
ドラメシヤ 92.3 のろわれボディ 100 きあいのタスキ 100 でんこうせっか
ドラメシヤ 92.3 のろわれボディ 100 きあいのタスキ 100 でんじは
ドラメシヤ 92.3 のろわれボディ 100 きあいのタスキ 100 まとわりつく
ドラメシヤ 7.7 すりぬけ 100 きあいのタスキ 100 てだすけ
ドラメシヤ 7.7 すりぬけ 100 きあいのタスキ 100 でんこうせっか
ドラメシヤ 7.7 すりぬけ 100 きあいのタスキ 100 でんじは
ドラメシヤ 7.7 すりぬけ 100 きあいのタスキ 100 まとわりつく