Python中如何正确格式化待追加的字典列表以写入JSON文件
问题根源
你构造主队数据的代码中误将冒号写为逗号,生成了Python独有的集合(set)结构,而JSON标准没有对应集合的类型,因此序列化写入时会直接报错。你生成的输出中{'PHI', '109'}、{'89', 'UTA'}都是集合的典型特征,集合的无序性还会导致键值位置随机颠倒,进一步破坏数据结构。
修复方案
1. 修正字典构造代码
将主队数据的集合结构改为和客队一致的字典结构,把逗号替换为冒号:
the_list = { f'Game {count}': [ {f"{x['vTeam']['triCode']}": f"{x['vTeam']['score']}"}, # 把原代码中的逗号改为冒号,转为标准字典结构 {f"{x['hTeam']['triCode']}": f"{x['hTeam']['score']}"} ], 'Time': f"{game_live}" } out_file.append(the_list)
2. 调用JSON模块写入文件
使用Python内置json模块完成序列化写入即可:
import json # out_file为你填充完数据的列表 with open("game_result.json", "w", encoding="utf-8") as f: # indent=2用于格式化输出方便阅读,ensure_ascii=False避免特殊字符乱码 json.dump(out_file, f, ensure_ascii=False, indent=2)
修正后的合规JSON结构示例
[ { "Game 1": [ {"TOR": "115"}, {"PHI": "109"} ], "Time": "7:00 PM ET" }, { "Game 1": [ {"IND": "98"}, {"UTA": "89"} ], "Time": "Currently Live" }, { "Game 1": [ {"MIA": "30"}, {"LAC": "21"} ], "Time": "Currently Live" } ]
内容的提问来源于stack exchange,提问作者Walter Pope
相关产品推荐
相关产品推荐

