首页 > 解决方案 > BigQuery(数据框)到 XML

问题描述

我正在尝试使用我在此链接中找到的代码通过 python 对 BigQuery 查询进行 XML 导出:Python Pandas Dataframe to XML但我有以下错误,你能帮我解决这个问题吗?

import os
import pandas as pd
from datetime import datetime, timedelta
from google.cloud import bigquery

script_path = "C:\\Keys\\key.json"
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = script_path

client = bigquery.Client(project='project_id')
query_job = client.query("SELECT field1, field2, field3 FROM dataset.table ")
df_bq = query_job.to_dataframe()

def to_xml(df, filename=None, mode='w'):
    def row_to_xml(row):
        xml = ['<item>']
        for i, col_name in enumerate(row.index):
            xml.append('  <field name="{0}">{1}</field>'.format(col_name, row.iloc[i]))
        xml.append('</item>')
        return '\n'.join(xml)
    res = '\n'.join(df.apply(row_to_xml, axis=1))

    if filename is None:
        return res
    with open(filename, mode) as f:
        f.write(res)

pd.DataFrame.to_xml = to_xml

df.to_xml('test.xml')

----> 1 df.to_xml('table.xml') 中的 NameError Traceback(最近一次调用)

NameError:名称“df”未定义

标签: pythonxmldataframegoogle-bigquery

解决方案


在 line 之前没有df分配任何变量df.to_xml('test.xml')。您实际上是从不存在的变量中调用方法。因此,NameError提示。


推荐阅读