@@ -42,26 +42,31 @@ def add_collection_items_from_xml(collection: Collection, xml_root: ET.Element,
4242 if stats is None :
4343 raise BGGApiError ("missing 'stats'" )
4444
45+ rating = stats .find ("rating" )
4546 stat_data = {
46- "usersrated" : xml_subelement_attr (stats , "usersrated" , convert = int , quiet = True ),
47- "average" : xml_subelement_attr (stats , "average" , convert = float , quiet = True ),
48- "bayesaverage" : xml_subelement_attr (stats , "bayesaverage" , convert = float , quiet = True ),
49- "stddev" : xml_subelement_attr (stats , "stddev" , convert = float , quiet = True ),
50- "median" : xml_subelement_attr (stats , "median" , convert = float , quiet = True ),
47+ "usersrated" : xml_subelement_attr (rating , "usersrated" , convert = int , quiet = True ),
48+ "average" : xml_subelement_attr (rating , "average" , convert = float , quiet = True ),
49+ "bayesaverage" : xml_subelement_attr (rating , "bayesaverage" , convert = float , quiet = True ),
50+ "stddev" : xml_subelement_attr (rating , "stddev" , convert = float , quiet = True ),
51+ "median" : xml_subelement_attr (rating , "median" , convert = float , quiet = True ),
5152 "ranks" : [],
5253 }
5354
54- for rank in stats . findall ( "ranks/rank" ) :
55- stat_data [ "ranks" ]. append (
56- {
55+ if rating is not None :
56+ for rank in rating . findall ( "ranks/rank" ):
57+ rank_data = {
5758 "type" : rank .attrib .get ("type" ),
5859 "id" : rank .attrib ["id" ],
5960 "name" : rank .attrib ["name" ],
6061 "friendlyname" : rank .attrib ["friendlyname" ],
6162 "value" : rank .attrib .get ("value" ),
62- "bayesaverage" : float ( rank .attrib .get ("bayesaverage" , 0.0 ) ),
63+ "bayesaverage" : rank .attrib .get ("bayesaverage" ),
6364 }
64- )
65+
66+ for field in ["value" , "bayesaverage" ]:
67+ if rank_data [field ] in ["Not Ranked" , "N/A" ]:
68+ rank_data [field ] = None
69+ stat_data ["ranks" ].append (rank_data )
6570
6671 data .update (
6772 {
0 commit comments