通过python上传JSON到谷歌云存储

2023-12-31

我正在尝试上传 JSON,我必须到谷歌云存储。我可以手动执行此操作,因此我知道它可以工作,但现在想编写一个自动执行此操作的 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 = bucket.blob('t.json')
with open('t.json', 'rb') as f:
  blob.upload_from_file('f')

是我到目前为止的代码,这是我收到的错误。

Traceback (most recent call last):
  File "uploadcloud.py", line 16, in <module>
    blob.upload_from_file('f')
  File "/Library/Python/2.7/site-packages/google/cloud/storage/blob.py", line 891, in upload_from_file
    client, file_obj, content_type, size, num_retries)
  File "/Library/Python/2.7/site-packages/google/cloud/storage/blob.py", line 815, in _do_upload
    client, stream, content_type, size, num_retries)
  File "/Library/Python/2.7/site-packages/google/cloud/storage/blob.py", line 634, in _do_multipart_upload
    data = stream.read()
AttributeError: 'str' object has no attribute 'read'

您应该将打开的文件传递给upload_from_file不是字符串,只需更改为

with open('t.json', 'rb') as f:
  blob.upload_from_file(f)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过python上传JSON到谷歌云存储 的相关文章

随机推荐

  • 将循环缓冲区就地移动/对齐/旋转为零

    我正在使用循环缓冲区将数据推送到列表的任一端 完成后 我想对齐缓冲区 以便列表中的第一个元素位于位置零 并且可以像常规数组一样使用 而无需任何花哨的索引开销 所以我有我的循环list有能力N 它有n从任意索引开始的元素f 移动 旋转所有元素
  • 用鸭子类型语言模拟静态类型的各个方面

    在我目前的工作中 我正在构建一套严重依赖于对象的 Perl 脚本 使用 Perl 的bless 在哈希上尽可能接近 OO 现在 由于缺乏更好的表达方式 我公司的大多数程序员都不是很聪明 更糟糕的是 他们不喜欢阅读文档 并且似乎在理解其他人的
  • 检查 SaveAs 是否成功 VBA

    我需要什么样的语句来检查vba中的SaveAs操作是否成功 Sub saveBookAs wb SaveAs fileName newFile End Sub 您不需要语句来检查工作簿是否已保存 如果Save As进程失败 那么该行将自动出
  • 详细命名空间常用来做什么

    在一些较大的项目或库 例如 Eigen 中 您可以看到诸如internal or detail 我明白什么是internal有好处 但是什么是detail常用于 是否有任何通用约定将代码分发到这样的命名空间中 特别是在具有公共接口的库的情况
  • Flutter Firebase Cloud Messaging onMessage 被触发两次

    我已经实现了 firebase messaging flutter 包建议的基本配置 但是 每次我在 flutter 应用程序上收到通知时 onMessage 都会被触发两次 我正在使用 firebase messaging 6 0 9 D
  • 在 Clojure 中使用 data.zip 解析 XML 时出现 OutOfMemoryError

    我想使用 Clojure 从维基词典 XML 转储中提取标题 I used head n10000 gt out 10000 xml创建原始怪物文件的较小版本 然后我用文本编辑器进行修剪 使其成为有效的 XML 我根据里面的行数重命名了文件
  • 有更简单或更好的方法吗?

    我目前正在开发一个网站 由带有论坛的 cms 组成 我想为每个用户提供执行特定任务的积分 每次都是 这最终应该给他们一个排名 例如 如果用户发了一篇帖子 他们会得到 5 分 如果用户提交了一个话题 主题 他们会得到 20 分 依此类推 如果
  • 在 PHP 中读取原始 I/O 流的另一种方法

    我正在尝试寻找阅读 php input 的替代方法 我用它从 CURL PUT 获取 XML 数据 我通常这样做 xml file get contents php input 但是 我有一些问题file get contents 在 Wi
  • 如何在 .draw() 之后保持 jQuery DataTables 滚动位置

    我正在使用 jQuery Datatables 插件来创建一个小表 12 行 一些
  • 多线程信号处理

    在unix中 如果向多线程进程发送信号 哪个线程将执行处理函数 如果是多cpu机器 则同时运行的线程数超过1个 哪个线程将运行信号处理函数 根据男人7信号 http linux die net man 7 signal 进程中的所有线程共享
  • Java 中本地时间与 UTC 的换算

    我正在尝试在java中将本地时间转换为UTC时间 我已经写了代码 String datesToConvert 31 12 2018 23 37 00 String dateFormat dd MM yyyy HH mm ss SimpleD
  • Cycle2 旋转木马活动滑块位于中心

    我将 Cycle2 与轮播寻呼机一起使用 与此演示的方式相同 http jquery malsup com cycle2 demo caro pager php http jquery malsup com cycle2 demo caro
  • 当从 sd 卡中的 lib 加载片段时,Android 系统在活动重新创建时无法找到片段?

    我已经从外部库加载了一个片段 可以在 SD 卡中成功使用 但是当 Android 系统重新创建活动时 我的应用程序崩溃了 因为 Android 系统无法找到外部库中可用的片段类 从外部 apk 加载 Fragment 的代码 final S
  • LocalDate 序列化:日期作为数组?

    我使用 Java 11 并希望将 LocalDate LocalDateTime 序列化 反序列化为字符串 好的 我添加了依赖
  • 将从 nuget 下载的组件添加到工具箱的推荐方法是什么?

    我有一个 C Windows 窗体项目 其中使用通过 nuget 获得的组件 现在我想知道将此组件添加到设计器中的工具箱的正确方法是什么 我应该在硬盘上制作该组件的单独副本并从那里添加它 还是应该从项目的包文件夹中添加它 或者可能做一些完全
  • Google Cloud Run / 域映射是否支持 ALIAS 记录?

    由于它可以在 Heroku 通配符 CNAME 上使用 因此 google cloud run 可以配置单个 ALIAS 类型记录吗 300 IN ALIAS ghs googlehosted com Google Cloud Run 需要
  • 带有下拉建议的文本框

    目前 我的 ASP Net C 2 0 网站上有一个数据绑定下拉列表 其中包含大约 400 个项目 我想将其替换为类似于谷歌搜索中的文本框的内容 您在其中输入字母 并且仅弹出以这些字母开头的条目 实施它的好方法是什么 是否存在任何人都可以建
  • Maven 打包排除 jars 正则表达式

    我在 EAR 中有一些简单的 WAR 我需要排除除 richafeces jar 之外的所有战争库 我在包装中尝试过这个排除 regex WEB INF lib richfaces jar whitout success 怎么做 如果我使用
  • crossfilter中的reduceAdd、reduceSum、reduceRemove函数是什么?应该如何使用它们?

    有人可以用简单的术语解释一下reduce函数如何及其参数reduceAdd reduceSum reduceRemove工作于crossfilter 请记住 映射缩减通过特定维度的键来缩减数据集 例如 让我们使用带有记录的交叉过滤器实例 n
  • 通过python上传JSON到谷歌云存储

    我正在尝试上传 JSON 我必须到谷歌云存储 我可以手动执行此操作 因此我知道它可以工作 但现在想编写一个自动执行此操作的 python 脚本 import boto import gcs oauth2 boto plugin import