前提・実現したいこと
SpotifyAPIで取得したデータを用いてpythonからjsonファイルを出力させようとしています。上のコードで出力したjsonファイルに配列alで{'id': 'アーティスト名'}を追加したくて下のコードを書きました。しかし同じアーティスト名が出てきて要素が重複してしまうのでsetを使って重複なしのデータ集合を作りたいです。
該当のソースコード
python
1artist_id = '0GtBUVp1cWdIUKwm2GHTHc' 2result = spotify.artist_related_artists(artist_id) 3 4al = [] 5for artist in result['artists']: 6 artist_name = artist['name'] 7 al.append({'id': '{0}'.format(artist_name)}) 8 9dictionary = {"nodes": al} 10 11# Pythonオブジェクトをファイル書き込み 12savepath = 'sample2.json' 13with open(savepath, 'w') as outfile: #wで新しく書き込み 14 json.dump(dictionary ,outfile, ensure_ascii=False)
python
1#上のファイルidを追加 2artist_id = '6bCInSZj1C1H8Mz7m4LqYA' 3result = spotify.artist_related_artists(artist_id) 4 5for artist in result['artists']: 6 artist_name = artist['name'] 7 al.append({'id': '{0}'.format(artist_name)}) 8 9uniqued = set(al) 10 11dictionary = {"nodes": uniqued} 12 13# Pythonオブジェクトをファイル書き込み 14savepath = 'sample2.json' 15with open(savepath, 'a') as outfile: #aで追加書き込み 16 json.dump(dictionary ,outfile)
発生している問題・エラーメッセージ
unhashable type: 'dict'
json.dump()は引数に辞書型を入れると教わったのでここからどうすればよいかわからなくなってしまいました。重複をなくす方法を教えていただきたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。