Analyze keywords in cards.json files

Count unique keywords in sets and cubes. Output csv files included.
This commit is contained in:
Dan Niemitalo 2020-11-29 13:27:14 -06:00
parent f75ccf13cd
commit 7226fc3b17
3 changed files with 179 additions and 3 deletions

View file

@ -1,4 +1,5 @@
import json
import os
def get_keywords(card):
@ -39,6 +40,36 @@ def keyword_report(k_dict):
print(f'\nTotal unique keywords: {len(k_dict)}')
filename = f'scryfall/sets/ZNR.json'
k_dict = keyword_count(filename)
keyword_report(k_dict)
# ### Example use: print a keyword report for a cards.json file ###
# filename = f'cubes/CoreTheElegantCube.json'
# k_dict = keyword_count(filename)
# keyword_report(k_dict)
# ### Example use: count keywords in a list of cube.json files ###
# output = open('cube_keyword_frequency.csv', 'w+')
# all_cube_files = os.listdir('cubes')
# output_file = open('cube_keyword_frequency.csv', 'w+')
# output_file.write('Cube,Keywords\n')
# for filename in all_cube_files:
# if filename.endswith('json'):
# k_dict = keyword_count('cubes/' + filename)
# output_file.write(f"{filename.strip('json')},{len(k_dict)}\n")
# print(filename, len(k_dict))
# output_file.close()
# ### Example use: find keyword count in each set ###
# f = open('set_codes.txt')
# codes = [line.strip() for line in f.readlines()]
# output_file = open('set_keyword_frequency.csv', 'w+')
# output_file.write('Set,Keywords\n')
# for code in codes:
# if code == 'CON':
# code = 'CON_'
# filename = f'scryfall/sets/{code}.json'
# k_dict = keyword_count(filename)
# print(f'{code}: {len(k_dict)}')
# output_file.write(f'{code},{len(k_dict)}\n')
# output_file.close()
# f.close()

View file

@ -0,0 +1,25 @@
Cube,Keywords
AlchemistsCrucible31.,62
BeginnerCube.,17
CasualChampionsCube.,71
CoreResonanceBasic.,16
CoreSetArchytas.,16
CoreTheElegantCube.,70
EvolvingWildsCube.,65
GraveyardComboCube.,60
Highball.,63
kirblinxs_type_4_communal_stack.,85
NoFreeLunches.,68
NonblueGridMOriginsV3.,30
OLDGraveyardComboCube.,64
OPCube2020.,23
penny_pincher_20inventors_fair.,57
igh_a_cube.,66
Simplicity.,21
TheBlackCube.,74
TheCoolSide.,62
TheElegantCube.,107
TheGameNightCube.,17
TheGrandOdyssey.,17
TheNoobCube.,26
WheelofChange.,64
1 Cube Keywords
2 AlchemistsCrucible31. 62
3 BeginnerCube. 17
4 CasualChampionsCube. 71
5 CoreResonanceBasic. 16
6 CoreSetArchytas. 16
7 CoreTheElegantCube. 70
8 EvolvingWildsCube. 65
9 GraveyardComboCube. 60
10 Highball. 63
11 kirblinxs_type_4_communal_stack. 85
12 NoFreeLunches. 68
13 NonblueGridMOriginsV3. 30
14 OLDGraveyardComboCube. 64
15 OPCube2020. 23
16 penny_pincher_20inventors_fair. 57
17 igh_a_cube. 66
18 Simplicity. 21
19 TheBlackCube. 74
20 TheCoolSide. 62
21 TheElegantCube. 107
22 TheGameNightCube. 17
23 TheGrandOdyssey. 17
24 TheNoobCube. 26
25 WheelofChange. 64

120
set_keyword_frequency.csv Normal file
View file

@ -0,0 +1,120 @@
Set,Keywords
2ED,13
3ED,14
4ED,15
5ED,18
6ED,15
7ED,14
8ED,14
9ED,17
10E,22
M10,19
M11,19
M12,17
M13,21
M14,19
M15,20
ORI,21
M19,16
M20,19
M21,22
POR,10
P02,10
PTK,10
S99,9
ARN,8
ATQ,8
LEG,17
DRK,12
FEM,9
HML,11
ICE,16
ALL,13
MIR,19
VIS,18
WTH,17
TMP,18
STH,10
EXO,12
USG,18
ULG,12
UDS,14
MMQ,18
NEM,12
PCY,13
INV,17
PLS,10
APC,11
ODY,19
TOR,16
JUD,15
ONS,15
LGN,15
SCG,20
MRD,17
DST,18
5DN,20
CHK,22
BOK,15
SOK,18
RAV,22
GPT,18
DIS,17
CSP,13
TSP,26
PLC,24
FUT,50
LRW,25
MOR,22
SHM,22
EVE,24
ALA,22
CON_,25
ARB,30
ZEN,23
WWK,16
ROE,23
SOM,21
MBS,27
NPH,22
ISD,22
DKA,23
AVR,24
RTR,23
GTC,23
DGM,30
THS,24
BNG,20
JOU,22
KTK,24
FRF,21
DTK,24
BFZ,23
OGW,22
SOI,24
EMN,25
KLD,19
AER,19
AKH,23
HOU,23
XLN,22
RIX,23
DOM,22
GRN,22
RNA,23
WAR,19
ELD,20
THB,20
IKO,17
ZNR,20
MMA,38
MM2,37
EMA,28
MM3,25
IMA,29
A25,31
UMA,31
2XM,52
MH1,58
CMR,42
JMP,20
1 Set Keywords
2 2ED 13
3 3ED 14
4 4ED 15
5 5ED 18
6 6ED 15
7 7ED 14
8 8ED 14
9 9ED 17
10 10E 22
11 M10 19
12 M11 19
13 M12 17
14 M13 21
15 M14 19
16 M15 20
17 ORI 21
18 M19 16
19 M20 19
20 M21 22
21 POR 10
22 P02 10
23 PTK 10
24 S99 9
25 ARN 8
26 ATQ 8
27 LEG 17
28 DRK 12
29 FEM 9
30 HML 11
31 ICE 16
32 ALL 13
33 MIR 19
34 VIS 18
35 WTH 17
36 TMP 18
37 STH 10
38 EXO 12
39 USG 18
40 ULG 12
41 UDS 14
42 MMQ 18
43 NEM 12
44 PCY 13
45 INV 17
46 PLS 10
47 APC 11
48 ODY 19
49 TOR 16
50 JUD 15
51 ONS 15
52 LGN 15
53 SCG 20
54 MRD 17
55 DST 18
56 5DN 20
57 CHK 22
58 BOK 15
59 SOK 18
60 RAV 22
61 GPT 18
62 DIS 17
63 CSP 13
64 TSP 26
65 PLC 24
66 FUT 50
67 LRW 25
68 MOR 22
69 SHM 22
70 EVE 24
71 ALA 22
72 CON_ 25
73 ARB 30
74 ZEN 23
75 WWK 16
76 ROE 23
77 SOM 21
78 MBS 27
79 NPH 22
80 ISD 22
81 DKA 23
82 AVR 24
83 RTR 23
84 GTC 23
85 DGM 30
86 THS 24
87 BNG 20
88 JOU 22
89 KTK 24
90 FRF 21
91 DTK 24
92 BFZ 23
93 OGW 22
94 SOI 24
95 EMN 25
96 KLD 19
97 AER 19
98 AKH 23
99 HOU 23
100 XLN 22
101 RIX 23
102 DOM 22
103 GRN 22
104 RNA 23
105 WAR 19
106 ELD 20
107 THB 20
108 IKO 17
109 ZNR 20
110 MMA 38
111 MM2 37
112 EMA 28
113 MM3 25
114 IMA 29
115 A25 31
116 UMA 31
117 2XM 52
118 MH1 58
119 CMR 42
120 JMP 20