2017-02-17 2 views
1

저는 Python으로 시작하는 사람이며 JSON에 약간의 문제가 있습니다. 튜토리얼에서는 두 가지 기능이 있습니다와 내가 일하고 있어요 :TypeError : {1, 3}이 (가) 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

당신이 파일에 작성하는 유형 (데이터)을 확인 또한 당신이 작성하는 샘플 JSON 데이터를 게시 할 수 있습니다. – Himaprasoon

답변

1

{1, 3}는 오류가 지적 하듯, JSON으로 직렬화 할 수없는 set입니다 - JSON의 유일한 수집 types이 목록 (어레이라고 JSON에서) 및 사전 (JSON에서라는 개체)입니다.

당신은 목록에 변환해야합니다 :

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

예. 고마워. – proceder

+0

다행입니다. 원할 경우 옆에있는 체크 표시를 클릭하여 문제를 해결하는 대답을 수락 할 수 있습니다 (http://stackoverflow.com/help/someone-answers). 이렇게하면 다른 사람들이 솔루션의 작동을 알 수 있습니다. –

+1

. 나는 그것을 할 거 야. – proceder

관련 문제