'列表'对象没有属性'json'

时间:2019-12-12 15:48:15

标签: django python-3.x firebase firebase-realtime-database

我正在尝试从firebase数据库中获取所有产品,但以json数据形式。 这是我的数据库的结构:

products{
  0{
    name:...
    price:...
    }
  1{
    name:..
    price:..

,依此类推。下面是我尝试的代码:

import json
from .models import Product
import pyrebase

def get_products():

   database = firebase_key().database()
   product_list = Product.objects.all()



   r = database.child("products").get().each()
   jsonList = r.json()
   jsonData = jsonList['products']

   data = []

   for products in r:

       productData = {}


       productData['name'] = products.name
       productData['image'] = products.image
       productData['price'] = products.price
       productData['description'] = products.description

       data.append(productData)

   return data

我是django和firebase的新手,所以将不胜感激

1 个答案:

答案 0 :(得分:0)

正如@Kevin指出的,each不会返回json,而是返回列表。您可以在pyrebase documentation上签出。

您的代码应该看起来像这样:

all_products = database.child("products").get()
for product in all_products.each():
    data.append(product.val()) # This works if your fields have the same names.

修改

如果您仍然需要数据作为JSON。

json_data = json.dumps(data)