无法使用JSON数据的API上传到BigQuery

时间:2018-06-21 04:45:14

标签: python google-cloud-platform google-bigquery

很抱歉,我的新手问题。我是python和BigQuery的新手,我正在尝试使用API​​在Data Studio中做一个简单的尝试。

我下面有一个python脚本,该脚本试图从加载到Google BigQuery的公共API中获取JSON数据。我无法将JSON数据上传到BigQuery。

我认为我的问题之一是数据以逗号分隔而不是换行输入。是否可以编写代码将数据换行?

这是我到目前为止的代码:

import urllib
import json
import urllib.request
import requests

from google.cloud import bigquery

def createdataset():

    bigquery_client = bigquery.Client()

    dataset_id = 'mydataset'

    dataset_ref = bigquery_client.dataset(dataset_id)
    dataset = bigquery.Dataset(dataset_ref)

    dataset = bigquery_client.create_dataset(dataset)

    print('Dataset {} created.'.format(dataset.dataset_id))

def main():
    fetch_traffic_data()
    load_json("data.json")

def fetch_traffic_data():

    URL = "https://data.cityofchicago.org/resource/8v9j-bter.json"


def send_to_big_query(data):
    BIG_QUERY_URL = "https://www.googleapis.com/bigquery/v2/projects/bigquery-test-205619/datasets"
for d in data:

    print(d)
    response = requests.post(BIG_QUERY_URL, data=json.dumps(d))
    print(response.text)
    #post each dictionary (JSON data point) to big query

def load_json(source_file_name):
    bigquery_client = bigquery.Client()
    dataset = bigquery_client.dataset('mydataset')
    table = dataset.table('mytable')

    with open(source_file_name, 'rb') as source_file:

        job_config = bigquery.LoadJobConfig()
        job_config.source_format = 'NEWLINE_DELIMITED_JSON'
        job = bigquery_client.load_table_from_file(
        source_file, table, job_config=job_config)


if __name__ == "__main__":
    main()

还可以使此代码半定期运行吗?

非常感谢您的帮助,对于新手问题,我再次表示歉意。

0 个答案:

没有答案