猿问

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

我是个菜鸟,没有其他方法可以解决这个问题,所以我需要用 Python 来解决。我需要解析一个 xml 文件。当文件存储在本地时,这可以正常工作。但是,我需要能够在 Google Cloud Storage 中打开文件。


请看我的代码。我不知道如何将 blob 作为文件名传递给 ElementTree。如果我使用 blob.download_as_string() 我将 xml 文件的内容作为名称。这当然是文件的太长和错误的路径。


import xml.etree.ElementTree as ET

from google.cloud import storage

client = storage.Client()


#My bucket

bucket = client.get_bucket('import')


# This is my file

blob = bucket.get_blob('/xml/Profit.xml')


xml_file = blob.download_as_string()

#xml_file is now looooong string and not what I want


root = 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 变量包含我存储桶中文件的路径。或者想办法解析文件的内容。


任何为我指明正确方向的建议表示赞赏。


BIG阳
浏览 124回答 1
1回答

慕雪6442864

读取文件并解析它:import cloudstorage as gcsimport xml.etree.ElementTree as ET# The filename argument is specified in the format of YOUR_BUCKET_NAME/PATH_IN_GCSgcs_file = gcs.open(filename)contents = gcs_file.read()gcs_file.close()root = ET.fromstring(contents)
随时随地看视频慕课网APP

相关分类

Python
我要回答