![](/img/trans.png)
[英]Trying to get a list with only key value as the defaultvalue in Python using defaultdict
[英]I am trying to get only the value of a field in firestore using python but it returns a key value pair instead
我正在將我的應用程序與 cloude firestore 鏈接起來,我正在使用 python,我需要檢索值“Balance”字段以檢查它是否有效。 但是當我嘗試檢索它時,我得到了這樣的輸出
{ Balance: 80 }
但我只需要余額的整數/浮點值。 我的代碼如下-
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
# Use the application default credentials
cred = credentials.Certificate("/Users/admin/Downloads/serviceAccountKey.json")
firebase_admin.initialize_app(cred)
db = firestore.client()
user_id= 'my user id in database'
u = 80
userbal_new= u-10
users_ref = db.collection(u'users').document(user_id)
#update balance
#users_ref.update({u'Balance': userbal_new})
#get balance
get_bal= users_ref.get({u'Balance'})
bal = u'{}'.format(get_bal.to_dict())
print (bal)
因為您在這里使用to_dict
函數:
bal = u'{}'.format(get_bal.to_dict())
這是生成一個字典,你可以像這樣調用bal
dict:
bal['Balance']
或者,以以下格式進行調用(如果它始終是您想要的平衡):
bal = u'{}'.format(get_bal.to_dict()['Balance'])
您可以使用db.collection().document().get()
通過傳遞field_paths={}
來指定要在快照中返回的field_paths={}
get_bal = users_ref.get(field_paths={'Balance'}).to_dict()
這將僅返回字典中的余額:
{ Balance: 80 }
我發現 get() 更容易閱讀。 所以如果你只想要 int.
bal = get_bal.get('Balance')
或者
bal = users_ref.get(field_paths={'Balance'}).to_dict().get('Balance')
將返回
80
如果你得到 bal = { 'Balance': 80 } 那么為了得到平衡使用 .. print(bal['Balance'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.