TypeError:{1,3}不是JSON可序列化的

时间:2017-02-17 10:47:35

标签: python json python-3.x serialization set

我是Python的初学者,我对JSON有点问题。在我正在使用的教程中有两个功能:

def read_json(filename):
    data = []
    if os.path.isfile(filename):
        with open(filename, "r") as f:
            data = json.load(f)
    return data


def save_json(filename, data):
    with open(filename, "w") as f:
        json.dump(data, f)

但是当我尝试保存数据时,保存时出错:

raise TypeError(repr(o) + " is not JSON serializable")
TypeError: {1, 3} is not JSON serializable

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

{1, 3}set,正如错误所指出的那样,无法序列化为JSON - JSON中唯一的集合types是列表(在JSON中称为数组)和字典(在JSON中调用对象。)

您需要将其转换为列表:

converted = list(my_data)
save_json(my_filename, converted)