2017-06-30 1 views
0

J'essaye de charger ce code pour télécharger un json sur mon google cloud via python.Comment télécharger un JSON sur le stockage google cloud en utilisant python

import boto 
import gcs_oauth2_boto_plugin 
import os 
import shutil 
import StringIO 
import tempfile 
import time 

from google.cloud import storage 
from google.cloud.storage import blob 

client = storage.Client(project='dataworks-356fa') 
bucket = client.get_bucket('dataworks-356fa-backups') 
blob = ('t.json', bucket) 
with open('t.json', 'rb'): 
    blob.upload_from_file('t.json') 

Je suis la ligne directrice sur here ...

Je suis coincé et je ne sais pas où aller si toute aide sera grandement appréciée. J'ai changé le "blob.upload_from_file ('t.json')" avec "blob.upload ('t.json')" et obtenir le même problème.

+1

Postez ici votre code d'erreur. –

+1

La méthode 'upload_from_file' prend' file object' comme argument, et vous passez le nom de fichier à la méthode 'upload_from_file'. –

+0

retraçage (le plus récent appel dernier): Fichier "uploadcloud.py", ligne 16, dans blob.upload_from_file ('t.json') AttributeError: objet 'tuple' n'a pas d'attribut 'upload_from_file' –

Répondre

1

Il semble que vous essayiez d'utiliser une instance de la classe Blob mais que vous utilisiez un tuple par erreur. Essayez ceci:

client = storage.Client(project='dataworks-356fa') 
bucket = client.get_bucket('dataworks-356fa-backups') 
blob = bucket.blob('t.json') 
with open('t.json', 'rb') a f: 
    blob.upload_from_file(f) 
+0

retraçage (plus appel récent en dernier): Fichier "uploadcloud.py", ligne 16, en blob.upload_from_file ('f') Fichier "/Library/Python/2.7/site-packages/google/cloud/storage/blob.py ", ligne 891, dans le fichier upload_from_file, fichier_obj, type_type, taille, num_retries) Fichier" /Library/Python/2.7/site-packages/google/cloud/storage/blob.py ", ligne 815, dans _do_upload client, stream, content_type, size, num_retries) Fichier "/ Bibliothèque/Python sur/2.7/packages-site/google/cloud/storage/blob.py ", ligne 634, dans _do_multipart_upload data = stream.read() AttributeError: l'objet 'str' n'a pas d'attribut 'read' –

+0

c'est l'erreur Je reçois en faisant ce code –

+0

Je suppose que vous appelez toujours upload_from_file ('t.json'). Il devrait être upload_from_file (f). –