53591


Python3でデータを抽出してからそれをJsonファイルにして保存したいのですが、辞書型、リストが複雑になっているためどのように操作してよいか分かりません。

[code]

    while i < len(api_data['data']):
            num = i + 1
            img_url = 'ループのたびに違うURLが来る。'
            link = 'ループのたびに別の画像の保存先のSiteURLが入る'
            dict_mydata['data'] = [{'image':img_url, 'from':link, 'num':num}]
            i += 1
    
[/code]

1回目は上手く保存されるのですが2回目以降は上書きになってしまう辞書型のデータがたまりません。

[code]

    {'data': [{'image': 'https://~.jpg', 'from': 'https://~.com', 'num': 1}, {'image': 'https://~.jpg', 'from': 'https://~.com', 'num': 2}]}
    
[/code]

このようにデータを重ねて行きたいです。  
どのようにコードを書けばよいでしょうか？  
詳しい方、ご教授お願いします。


CC BY-SA 4.0
2019-03-20T07:44:11.263
53581
2019-03-20T10:32:48.933
22565
question
python python3 json
PythonでJsonファイルの作成したい。


以下の記事のように、いったん値を配列に入れて、それを辞書に入れれば出来ます。  
[Generating a dynamic nested JSON object and array -
python](https://stackoverflow.com/q/42204153/9014308)

提示されたソースで言えば、以下のようになるでしょう。

[code]

    dict_mydata = {}
    value_array = []
    while i < len(api_data['data']):
            num = i + 1
            img_url = 'ループのたびに違うURLが来る。'
            link = 'ループのたびに別の画像の保存先のSiteURLが入る'
            value_array.append({'image':img_url, 'from':link, 'num':num})
            i += 1
    
    dict_mydata['data'] = value_array
    
[/code]


CC BY-SA 4.0
2019-03-20T10:32:48.933
53591
2019-03-20T10:32:48.933
26370
53581
answer