Joh*_*ews 5 python dataframe pandas firebase
给定一个包含一些数据的 Pandas Dataframe,将这些数据存储到 Firebase 的最佳方法是什么?
我应该将 Dataframe 转换为本地文件(例如 .csv、.txt)然后将其上传到 Firebase Storage,还是也可以直接存储 Pandas Dataframe 而无需转换?或者有更好的最佳实践吗?
03年 1 月更新- 到目前为止,我已经使用了这个解决方案,它需要在本地编写一个 csv 文件,然后读入并上传它,然后删除本地文件。然而,我怀疑这是最有效的方法,因此我想知道它是否可以做得更好更快?
import os
import firebase_admin
from firebase_admin import db, storage
cred = firebase_admin.credentials.Certificate(cert_json)
app = firebase_admin.initialize_app(cred, config)
bucket = storage.bucket(app=app)
def upload_df(df, data_id):
"""
Upload a Dataframe as a csv to Firebase Storage
:return: storage_ref
"""
# Storage location + extension
storage_ref = data_id + ".csv"
# Store locally
df.to_csv(data_id)
# Upload to Firebase Storage
blob = bucket.blob(storage_ref)
with open(data_id,'rb') as local_file:
blob.upload_from_file(local_file)
# Delete locally
os.remove(data_id)
return storage_ref
Run Code Online (Sandbox Code Playgroud)
postdata = my_df.to_dict()
# Assumes any auth/headers you need are already taken care of.
result = firebase.post('/my_endpoint', postdata, {'print': 'pretty'})
print(result)
# Snapshot info
Run Code Online (Sandbox Code Playgroud)
您可以使用快照信息和端点取回数据,并df使用from_dict(). 您可以将此解决方案调整为SQL和JSON解决方案,它pandas也有支持。
另外和不同的地方,从您的脚本执行,你可能会考虑治疗火力为DB和使用DBAPI从firebase_admin(检查这个了)。
至于是否符合最佳实践,在不了解您的用例的情况下很难说。