我是个菜鸟,没有其他方法可以解决这个问题,所以我需要用 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)
添加回答
举报
0/150
提交
取消