为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 python 客户端打开用于谷歌云存储的 XML 文件

如何使用 python 客户端打开用于谷歌云存储的 XML 文件

BIG阳 2022-01-11 18:23:29
我是个菜鸟,没有其他方法可以解决这个问题,所以我需要用 Python 来解决。我需要解析一个 xml 文件。当文件存储在本地时,这可以正常工作。但是,我需要能够在 Google Cloud Storage 中打开文件。请看我的代码。我不知道如何将 blob 作为文件名传递给 ElementTree。如果我使用 blob.download_as_string() 我将 xml 文件的内容作为名称。这当然是文件的太长和错误的路径。import xml.etree.ElementTree as ETfrom google.cloud import storageclient = storage.Client()#My bucketbucket = client.get_bucket('import')# This is my fileblob = bucket.get_blob('/xml/Profit.xml')xml_file = blob.download_as_string()#xml_file is now looooong string and not what I wantroot = ET.parse(xml_file)#This doesnt work...result = ''for elem in root.findall('.//LEVEL1/DATA'):    mystr = elem.text.replace(" ","").replace("+","").replace("-","")    print mystr.replace(" ","").replace("+","").replace("-","")我希望 xml_file 变量包含我存储桶中文件的路径。或者想办法解析文件的内容。任何为我指明正确方向的建议表示赞赏。
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

读取文件并解析它:


import cloudstorage as gcs

import xml.etree.ElementTree as ET


# The filename argument is specified in the format of YOUR_BUCKET_NAME/PATH_IN_GCS

gcs_file = gcs.open(filename)

contents = gcs_file.read()

gcs_file.close()


root = ET.fromstring(contents)


查看完整回答
反对 回复 2022-01-11
  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信