86627


以下の記事にある、方法2 を中心に実験しています。

[Python、Requestsを使ったダウンロード](https://blog.narito.ninja/detail/67/)

こうすると、保存は出来るのですが、テキストでべたに書かれていて、見づらいファイルが出来上がってしまいます。

例えば `print(json.dumps(data_jsn, indent=2))`
というような感じで出てくるものをそのままファイルに保存するような方法ありますか？

タブ位置などを合わせた書式で保存したい。また、可能であればソースコードのループ構造は避けたい。以下のようなイメージです。

[code]

    with open(fullpath, 'wb') as f:
        f.write(str(json.dumps(data_jsn, indent=2)))
    f.close()
    
[/code]

これだと以下のエラーが表示されます。

[code]

    TypeError: a bytes-like object is required, not 'str'
    
[/code]


CC BY-SA 4.0
2022-03-01T02:26:37.867
86626
2022-03-01T02:45:48.290
2022-03-01T02:45:48.290
3060
43160
question
python python3 json
Python で JSON ファイルの保存時にエラー TypeError: a bytes-like object is required


`TypeError: a bytes-like object is required, not 'str'`が出てしまうのは  
**バイナリモード** で開いてしまっていることが原因かと思われます。  
解決方法としては下記のように、open関数の引数を'wb'から'w'に書き換えればjson形式で出力されます。

[code]

    # with open(fullpath, 'wb') as f:
    with open(fullpath, 'w') as f:
        f.write(str(json.dumps(data_jsn, indent=2)))
        f.close()
    
[/code]


CC BY-SA 4.0
2022-03-01T02:37:00.607
86627
2022-03-01T02:37:00.607
51317
86626
answer