gpt4 book ai didi

python-3.x - 如何修复Python中的 "Query'对象没有属性 'to_dict"错误?

转载 作者:行者123 更新时间:2023-12-02 17:43:17 28 4
gpt4 key购买 nike

我创建了一个云函数来在特定条件下从 firestore 获取数据。我已成功从 firestore 获取数据,但是我从 firestore 收到的数据位于“查询对象”中。如何将此 Query 对象转换为字典类型?

我尝试过 .to_dict() 函数来转换它,但是,它给了我一个错误,

Error: function crashed. Details: 'Query' object has no attribute 'to_dict'

我也尝试过这次访问: How to convert firestore query response to json using python但是,它不起作用。

insights = db.collection('GA_data').where('artist_id','==',request_json['artist_id'])
insights = insights.to_dict()
print(insights)

这是我的request_json

{'artist_id': #some_number}

我的预期结果是,

{
"artist_id" : #some_number,
"avgTimeOnPage" : "0.0",
"bouncerate" : "0.0",
"date" : "#some_date",
"newUsers" : "0",
"pageviews" : "0",
"sessionDuration" : "0.0",
"slug" : "#some_slug",
"users" : "0"
}

但我真正的输出是:

Query object : 
google.cloud.firestore_v1.query.Query object at 0x2a5f28059438

并且,在 .to_dict() 函数之后:

Error: function crashed. Details: 'Query' object has no attribute 'to_dict'

最佳答案

您必须将 stream() 附加到您的查询,然后使用 for 循环从您的查询可能返回的每个文档中获取数据,在您的情况下,您是我猜想只有一份,但您的查询可能有多个文档。那么你的代码可能是这样的:

insights = db.collection('GA_data').where('artist_id', '==', request_json['artist_id']
for document in insights.stream():
print(document.to_dict())

关于python-3.x - 如何修复Python中的 "Query'对象没有属性 'to_dict"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57336618/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com