update final results
This commit is contained in:
44
scripts/final_result_update.py
Normal file
44
scripts/final_result_update.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# from google.cloud import firestore
|
||||
import firebase_admin
|
||||
from firebase_admin import firestore
|
||||
from google.cloud.firestore_v1.base_query import FieldFilter
|
||||
from firebase_admin import credentials
|
||||
import os
|
||||
import pandas as pd
|
||||
from tqdm import tqdm
|
||||
|
||||
curdir = os.getcwd()
|
||||
path_delim = '/'
|
||||
df = pd.read_excel(curdir + path_delim + "data/Nov09.xlsx", sheet_name="op")
|
||||
|
||||
project_id = 'af3cc'
|
||||
collection_name = 'testData'
|
||||
# document_ids = ['2808202300075ROOBHO', '2808202300075ROOBHO']
|
||||
sample_ids = df["Sample ID"].to_list()
|
||||
print(len(sample_ids))
|
||||
|
||||
cred = credentials.Certificate(os.getcwd() + '/' + 'keys/hpos-prod-firebase-adminsdk.json')
|
||||
firebase_admin.initialize_app(cred)
|
||||
|
||||
db = firestore.client()
|
||||
|
||||
batch_limit = 30
|
||||
|
||||
for i in tqdm(range(0, len(sample_ids), batch_limit)):
|
||||
query = db.collection(collection_name).where(filter=FieldFilter("_id", "in", sample_ids[i: i+batch_limit]))
|
||||
docs = query.stream()
|
||||
batch = db.batch()
|
||||
|
||||
for doc in docs:
|
||||
doc_data = doc.to_dict()
|
||||
doc_id = doc.id
|
||||
doc_ref = db.collection(collection_name).document(doc_id)
|
||||
# test_result = df[(df["Sample ID"] == doc_data["_id"])]["Test Result"].item()
|
||||
test_result = df.loc[df["Sample ID"] == doc_data["_id"], "Test Result"].iloc[0]
|
||||
|
||||
batch.update(doc_ref, {'finalResult': test_result})
|
||||
|
||||
# Commit the batch
|
||||
batch.commit()
|
||||
|
||||
# print("Batch update completed successfully.")
|
||||
Reference in New Issue
Block a user