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?

3 Answers 3

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)
Sign up to request clarification or add additional context in comments.

3 Comments

There's no good reason to deserialize and then re-serialize the JSON. Just write solditems.content straight out to file.
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 :)
just adding info : we don't need to create data.json first, because this answer will generate data.json automatically.
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)

Comments

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)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.