2016-08-19 16 views
0

Google Cloud Platformに未処理のJSONデータをアップロードしようとしています。しかし、私はこのエラーを取得しています:Pythonコードを使用してGoogle Cloud Storageに未処理のJSONデータをアップロード

TypeError: must be string or buffer, not dict 

コード:

def upload_data(destination_path): 
    credentials = GoogleCredentials.get_application_default() 
    service = discovery.build('storage', 'v1', credentials=credentials) 

    content = {'name': 'test'} 
    media = http.MediaIoBaseUpload(StringIO(content), mimetype='plain/text') 
    req = service.objects().insert(
     bucket=settings.GOOGLE_CLOUD_STORAGE_BUCKET, 
     body={"cacheControl": "public,max-age=31536000"}, 
     media_body=media, 
     predefinedAcl='publicRead', 
     name=destination_path, 
    ) 
    resp = req.execute() 

    return resp 

コードStringIO(content)を変更することにより、勤務をStringIO(json.dumps(content))

+0

お願いします。 – Naveen

答えて

3

にあなたの例では、contentは辞書です。おそらくあなたはjsonを使いたいでしょうか?

content = json.dumps({'name': 'test'}) 
+0

それは働いた。この単純なことを忘れてしまった。このためにさまざまなことを試していました。ありがとう。 :) – Naveen

+0

上記のコードは、python manage.pyシェルでは問題なく動作しています。しかし、ローカルサーバーではありません。あなたは同じ理由の可能性を示唆できますか? – Naveen

関連する問題