Estoy tratando de guardar un archivo JSON
grande en una variable usando el módulo de requests
, pero solo parte de JSON
está convirtiendo en la variable cuando uso lo siguiente:
r = requests.get(url) r.json()
Veo que hay formas de guardarlo en trozos cuando se escribe en un archivo. ¿Hay una forma de hacerlo al escribir en una variable?
De acuerdo con los documentos , el uso de ‘con’ y la configuración de la secuencia en Verdadero deben ser lo que necesita.
with requests.get('http://httpbin.org/get', stream=True) as r: # Do things with the response here.
response = requests.get(url, stream=True) with open(path, 'wb') as f: for chunk in response.iter_content(chunk_size=1024): if chunk: # filter out keep-alive new chunks f.write(chunk) response.close()
O puedes usar el administrador de contexto:
with requests.get(url, stream=True) as response: with open(path, 'wb') as f: for chunk in response.iter_content(chunk_size=1024): if chunk: # filter out keep-alive new chunks f.write(chunk)
Para una variable, es lo mismo, solo usa data += chunk