Al recibir datos de Pyrebase, espero que sea un diccionario, que contiene claves y valores. Pero a veces, después de analizar los datos, no obtengo un diccionario. Es una lista de valor y no puedo conocer las llaves. ¿Estoy haciendo algo mal?

Aquí hay un ejemplo donde "analizado" es un dict:

raw_data = db.child("UploadedImages").order_by_child("Timestamp") \
    .start_at(self.start_from).limit_to_first(3).get()
parsed = json.loads(json.dumps(raw_data .val()))

Y aquí los datos devueltos son una lista:

users_raw = db.child("UploadedImages").order_by_child("Timestamp").get()
parsed = json.loads(json.dumps(users_raw.val()))
0
Masih Bahmani 26 may. 2021 a las 11:59

1 respuesta

La mejor respuesta

Si pones índices como llaves en Firsebase, no obtendrás las llaves. Sin embargo, si incluso una de esas llaves es una cadena aleatoria, también obtendrás las llaves. Realmente no sé por qué, pero esa fue la solución para mí.

Por lo tanto, en lugar de usar 1, 2, 3 ... use una cadena aleatoria o el generador de claves predeterminados de Firebase.

Puede consultar esto al exportar datos desde su panel de mandos de Firsebase (gracias a comentario de Frank Van Puffelen que le dio yo la idea de comprobarlo)

0
Masih Bahmani 28 may. 2021 a las 12:06