【问题标题】:convert list to BigQuery table python将列表转换为 BigQuery 表 python
【发布时间】:2022-01-24 16:14:43
【问题描述】:
result = {'data1': [1,2], 'data2': [4,5]}

如果我的键有单个值,我知道如何编写,但在这种情况下,它有我可以迭代的值列表。在 BigQuery 中创建表如下:

| data1    | data2          |
| -------- | -------------- |
| 1        | 4              |
| 2        | 5              |

【问题讨论】:

  • 我会使用 pandas 将其加载到 DataFrame 中,然后使用以下链接中的信息:cloud.google.com/bigquery/docs/samples/…
  • 要开始使用,我可能会查看 python 的 zip(),也许与该字典的 items() 结合使用。

标签: python list numpy dictionary google-bigquery


【解决方案1】:

我遇到了同样的问题,但我找不到解决方案,所以我所做的(我们所有的数据库都在我们的代码中作为服务进行管理)如下:

我正在获取表 id,然后使用 get_table(table_id)

现在我将带有列表数据的table._properties['schema']['fields'] 发送到将其转换为 Json 的函数

def __Convert_Data_To_Json(self,data,table_fields):       
       if not(len(table_fields)==len(data[0])):
          raise CannotCreateConnectionError(CANNOT_CREATE_CONNECTION_MESSAGE % str('Data length doesnt match table feild list'))
       for row in data:
          dataset={}
          i=0
          for col in row:                           
              if col==None:
                dataset[list(table_fields[i].values())[0]  ]=None
              else:
                  dataset[list(table_fields[i].values())[0]  ]=str(col)
              i+=1
          self.__rows_to_insert.append(dataset)

然后使用insert_rows_json

【讨论】:

    猜你喜欢
    • 2016-07-05
    • 1970-01-01
    • 2018-01-17
    • 2022-11-23
    • 1970-01-01
    • 2011-11-18
    • 2019-04-23
    • 2019-01-23
    • 1970-01-01
    相关资源
    最近更新 更多