반응형
Send data to Google Cloud Platform(GCP) datastore /
from google.cloud import datastore | |
from google.cloud.datastore.key import Key | |
import argparse | |
def sendDataToGCP(q_data, g_data, str_id, str_namespace): | |
client = datastore.Client() | |
key = client.key('graph', str_id, namespace=str_namespace) | |
entity = datastore.Entity(key=key, exclude_from_indexes=['query','graph']) | |
entity["title"] = str_id; | |
entity["description"] = str_id; | |
entity["query"] = q_data; #json.dumps(json.load(q_data)) | |
entity["graph"] = g_data; | |
client.put(entity) | |
# Then get by key for this entity | |
result = client.get(key) | |
print(result) | |
if __name__ == '__main__': | |
progpath = os.path.dirname(os.path.realpath(__file__)) | |
parser = argparse.ArgumentParser() | |
parser.add_argument("-s","--store-namespace",metavar='file',type=str, | |
help="Set Namespace default: %(default)s", default=None) | |
parser.add_argument("-i","--store-id",metavar='file',type=int, | |
help="Set id,as url default: %(default)s", default=1) | |
parser.add_argument("-q","--query-file",metavar='file',type=str, | |
help="input query file. if not given, then it assums STDIN as input", | |
default=None) | |
parser.add_argument("-g","--graph-file",metavar='file',type=str, | |
help="input graph(.json) file. if not given, then it assums STDIN as input", | |
default=None) | |
args = parser.parse_args() | |
args_dict = vars(args) | |
try: | |
if args_dict['store_id'] != None: | |
str_id = args_dict['store_id'] | |
else: | |
print (sys.stdin) | |
except: | |
print ("exception: invalid store id") | |
try: | |
if args_dict['store_namespace'] != None: | |
str_namespace = args_dict['store_namespace'] | |
else: | |
print (sys.stdin) | |
except: | |
print ("exception: invalid namespace") | |
try: | |
if args_dict['query_file'] != None: | |
f = open(args_dict['query_file'], 'r') | |
q_data = f.read() | |
f.close() | |
else: | |
print (sys.stdin) | |
except: | |
print("An exception occurred on Reading Query file.") | |
try: | |
if args_dict['graph_file'] != None: | |
f = open(args_dict['graph_file'], 'r') | |
g_data = f.read() | |
f.close() | |
else: | |
print (sys.stdin) | |
except: | |
print("An exception occurred on Reqading Graph file.") | |
sendDataToGCP(q_data, g_data, str_id, str_namespace) |
반응형