永続的なAPI呼び出しを行いながら、次のようにデータを再編成してファイルに保存するために、大きなリストをループしています。
for item in music:
# initialize data container
data = defaultdict(list)
genre = item[0]
artist= item[1]
track= item[2]
# in actual code, api calls happen here, processing genre, artist and track
data['genre']= genre
data['artist'] = artist
data['track'] = track
# use 'a' -append mode
with open('data.json', mode='a') as f:
f.write(json.dumps([data], indent=4))
注意:API呼び出しを行うための1時間のウィンドウがあるため(トークンの有効期限が切れると)、その場で
for loop
内でデータをディスクに保存する必要があります
。
上記のメソッドは
data.json
にデータを追加しますファイルですが、ダンプリストはカンマ区切りではなく、ファイルは次のように設定されます:
[
{
"genre": "Alternative",
"artist": "Radiohead",
"album": "Ok computer"
}
]
[
{
"genre": "Eletronic",
"artist": "Kraftwerk",
"album": "Computer World"
}
]
だから、コンマで区切られたリストのリストで終わるデータをダンプするにはどうすればよいですか?
回答 3 件
1つの方法は、JSONファイルに書き込む前にJSONファイルを読み取ることです。
例:
import json for item in music: # initialize data container data = defaultdict(list) genre = item[0] artist= item[1] track= item[2] data['genre']= genre data['artist'] = artist data['track'] = track # Read JSON with open('data.json', mode='r') as f: fileData = json.load(f) fileData.append(data) with open('data.json', mode='w') as f: f.write(json.dumps(fileData, indent=4))
大規模なデータセットの場合、
pandas
(シリアライズ用)およびpickle
(保存用)チャームのように一緒に動作します。df = pd.DataFrame() for item in music: # initialize data container data = defaultdict(list) genre = item[0] artist= item[1] track= item[2] # in actual code, api calls happen here, processing genre, artist and track data['genre']= genre data['artist'] = artist data['track'] = track df = df.append(data, ignore_index=True) df.to_pickle('data.pkl')
関連記事
- IPのコンマ区切りリストの各項目にポート番号を追加します
- 違いを得るためにC#で2つのコンマ区切りリストを比較します
- Pythonで辞書の値にリストを追加するにはどうすればよいですか?
- Haskell:リストのリスト内のリストに追加し、更新されたリストのリストを返します
- Python辞書内のリストの組み合わせ
- Pythonのリストをリストのサブセットに変換するにはどうすればよいですか?
- Pythonでの古いマクドナルドのリストとループの使用
- 列内の重複する行をコンマ区切りの値として結合します。Googleクエリ
- 2行ごとにSeleniumPythonにコンマを追加するにはどうすればよいですか?
- 最長のリストを圧縮し、出力を揃えます。 pythonitertoolsを最初から
関連した質問
- API呼び出しからリスト内の辞書をループする
- Python:アイテムの1つの値が最も高い辞書(jsonリスト)のインデックスを取得しますか?
- オブジェクトの2つのリストにPythonで同じタイプのオブジェクトのみが含まれているかどうかを確認する方法はありますか?
- api calll pythonで変数を渡す方法は?
- 2つのリストからの複数の値を含むキーを使用してdictを作成するにはどうすればよいですか?
- PythonでこのJSONから「url」変数を取得する方法
- jsonファイルをデータフレームに変換してネストされたjsonデータを解析します
- 断続的な変数を再利用せずに、dictキーを使用して文字列をフォーマットする効率的な方法
- モバイル数値シーケンスを実際の文に変換するのに助けが必要です
- あるリストを別のリストに追加する方法は?
このような何かが動作します
私のdata.jsonには次が含まれます: