Я получил данные из базы данных SQL Server и сохраняю данные в переменную в формате json.Я, конечно, хотел бы создать файл json прямо в облачном хранилище, не создавая файл json на моей локальной машине.Это возможно?
Мне удалось создать файл json на моем локальном компьютере, но я бы хотел не учитывать этот шаг, создав объект json в сценарии вместо файла на локальном компьютере, а затем создав файлнепосредственно в облачное хранилище.
#Libraries
import io, json, codecs
import pyodbc
import logging
import os
import cloudstorage as gcs
import gcloud
from gcloud import storage
from google.cloud import bigquery
import pandas as pd
from gcloud.bigquery import SchemaField
import os
from googleapiclient import discovery
#Path variable
try:
script_path = os.path.dirname(os.path.abspath(__file__)) + "/"
except:
script_path = "C:\\Users\\userl\\Documents\\auth.json"
#Bigquery Credentials and settings
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = script_path
db = pyodbc.connect("DRIVER={SQL Server};server=10.0.1.1;database=blablabla;uid=xpto;pwd=xxx")
cursor = db.cursor()
SQLview = 'select * from test'
result = cursor.execute(SQLview)
items = [dict(zip([key[0] for key in cursor.description], row)) for row in result]
json_file = json.dumps(items, ensure_ascii=False).encode('utf-8')
client = storage.Client(project='big-data')
bucket = client.get_bucket('big-data-bkt')
blob = bucket.blob(json_file)
with open('dict_obj.json', 'rb') as f:
blob.upload_from_file(f)