Saving a json file to computer python
Asked Answered
C

3

24

Using requests in Python I am performing a GET, requesting a JSON file which I can later access and modify, tweak, etc. with the command solditems.json(). However I would like to save this JSON file to my computer. Looking through the requests docs I found nothing, does anybody have an easy way I can do this?

Cranio answered 8/7, 2013 at 3:51 Comment(0)
S
51

You can do it just as you would without requests. Your code might look something like,

import json
import requests

solditems = requests.get('https://github.com/timeline.json') # (your url)
data = solditems.json()
with open('data.json', 'w') as f:
    json.dump(data, f)
Spanos answered 8/7, 2013 at 4:2 Comment(3)
There's no good reason to deserialize and then re-serialize the JSON. Just write solditems.content straight out to file.Ovule
I was under the impression OP was going to be adjusting it before writing to file. "access and modify,tweak,etc". This is just meant as an example :)Spanos
just adding info : we don't need to create data.json first, because this answer will generate data.json automatically.Fredfreda
L
6

Based on @Lukasa's comment, this accelerates @Jared's solution :

import requests

solditems = requests.get('https://github.com/timeline.json') # (your url)
data = solditems.content
with open('data.json', 'wb') as f:
    f.write(data)
Lackluster answered 23/5, 2020 at 16:23 Comment(0)
J
5

This is also very easy with the standard library's new pathlib library. Do note that this code is purely "writing the bytes of an HTTP response to a file". It's fast, but it does no validation that the bytes you're writing are valid JSON.

import requests
import pathlib

solditems = requests.get('https://github.com/timeline.json') # (your url)
pathlib.Path('data.json').write_bytes(solditems.content)
Jersey answered 20/8, 2020 at 17:52 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.