python - 从 Google Storage Cloud 读取数据到 Google Cloud Datalab 奇怪的错误

标签 python google-cloud-platform google-cloud-storage google-cloud-datalab

我正在尝试完全按照 here 中的建议将 csv_file 从 Google Storage Cloud 读取到 Google Cloud Datalab .

我一直收到错误: 源对象 gs://analog-arbor-233411/traissn.csv 不存在。 (analog-arbor-233411 是我的存储桶名称,traissn.csv 是我的 csv 文件。

所以在这里我检查了桶是否真的存在,它确实存在。

import google.datalab.storage as storage
mybucket = storage.Bucket('analog-arbor-233411')
mybucket.exists()

在这里,我什至遍历了 mybucket.objects(),它为存储桶中的对象提供了一个迭代器,以确保我得到一个现有对象。所以 data_csv_meta 只接受迭代中的最后一个对象。然后我再次检查它是否存在,确实存在!

for i in mybucket.objects():
    data_csv = i
data_csv.exists()

这是一件有趣的事情。当我运行以下命令时,出现错误 Source object gs://analog-arbor-233411/traissn.csv does not exist (my object name in data_csv traissn.csv)

uri = data_csv.uri
%gcs read --object $uri --variable data

四处寻找,却找不到答案。

最佳答案

在您当前的代码中,data_csv.exists() 是在 for 循环之外调用的,因此它只返回最后一个 data_csv 的结果> 桶迭代器返回的对象,可能是也可能不是 traissn.csv

所以要么:

  • 如果 data_csv 指向 traissn.csv,则在 for 循环中添加一个 break 语句,以便 data_csv保持不变
  • 在 for 循环中调用 gcs

关于python - 从 Google Storage Cloud 读取数据到 Google Cloud Datalab 奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090088/

相关文章:

Python如何写入二进制文件?

google-cloud-platform - 被谷歌云中的虚拟机锁定

image - 如何使用 Golang 将图像上传到 firebase 存储

javascript - html 和 php 视频需要很长时间才能缓冲

python - 无法使用 python 脚本切换 gcloud 平台帐户

android - Firebase Firestore 和 Cloud Storage : deleting both a DB entry and its associated file can result in one being actually deleted, 其他没有

python - 在 python 3.5 中写入 gzipped fasta 文件

Python:将自由文本转换为日期

python - 将新键添加到字典中

ssl - 如何通过 SSL/TLS 与托管在 Google Compute Engine 上的 gRPC 服务器通信?