使用Python将包含枚举值的字典的数据写入JSON文件

使用Python将包含枚举值的字典的数据写入JSON文件,json,python-3.x,data-extraction,Json,Python 3.x,Data Extraction,我有一个枚举,如下所示: class University(Enum): STUDENT = 1 PROFESSOR = 2 [{<University.PROFESSOR: 2>: {'iD': 1234, 'Name': 'John Samuel' 'Phone': 7531670961, 'City': 'Rochester'}}, {<University.PROFESSOR: 2>: {'iD': 5678, 'Name': 'Al

我有一个枚举,如下所示:

class University(Enum):
    STUDENT = 1
    PROFESSOR = 2
[{<University.PROFESSOR: 2>: {'iD': 1234,
 'Name': 'John Samuel'
 'Phone': 7531670961,
 'City': 'Rochester'}},

 {<University.PROFESSOR: 2>: {'iD': 5678,
 'Name': 'Alisa Potter',
 'Phone': 8904124567,
 'City': 'Manhattan'}}]
我有一本名为“university_info”的字典,包含如下所示的数据:

class University(Enum):
    STUDENT = 1
    PROFESSOR = 2
[{<University.PROFESSOR: 2>: {'iD': 1234,
 'Name': 'John Samuel'
 'Phone': 7531670961,
 'City': 'Rochester'}},

 {<University.PROFESSOR: 2>: {'iD': 5678,
 'Name': 'Alisa Potter',
 'Phone': 8904124567,
 'City': 'Manhattan'}}]
然后我调用字典上的函数,如下所示:

writeToJSONFile(university_info)
这给了我一个错误:

key <University.PROFESSOR: 2> is not a string
打印结果正确


我可以知道如何将结果打印成JSON而不转换成str吗?

普通JSON只能对以下内容进行编码

对象Python dict 数组Python列表 字符串Python str 浮点数或整数 真Python真 假Python假 空Python无
就这样。您必须为其他类型定义自定义编码器和解码器,这通常还涉及将其编码为普通JSON结构。例如,枚举可以是[string,number]。但默认实现不包括这一点

那么,有没有一种方法可以只将枚举转换为字符串,而不转换为其他值?因为我的做法是:WriteToJSonfileStrunversity_info,将整个字典转换为stringSure,只需使用字符串作为键。其他一些代码可以替代它。