'Firestore doesn't allow to upload dictionaries. ValueError: One or more components is not a string or is empty

guys. I need to upload a dict using Firestore. My keys work but I don't know why I can't upload this specific doc.

The item is a dict and has this format:

{
        "1": {
            "Fecha": "20220222",
            "Visitante": "########",
            "Visitado": "#######"}
}

The function:

def json_to_firestore(self,item):
    fecha = (self.auth_data["fechaDesde"]).replace("-","")        
    x = db.collection("Congreso")
    y= x.document(fecha)
    y.set(item)
    return True


Traceback (most recent call last):
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\Scraper\Congreso\scraper.py", line 119, in <module>
    x.json_to_firestore(item)
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\Scraper\Congreso\scraper.py", line 97, in json_to_firestore
    y.set(item)
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\venv\lib\site-packages\google\cloud\firestore_v1\document.py", line 166, in set
    batch, kwargs = self._prep_set(document_data, merge, retry, timeout)
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\venv\lib\site-packages\google\cloud\firestore_v1\base_document.py", line 211, in _prep_set
    batch.set(self, document_data, merge=merge)
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\venv\lib\site-packages\google\cloud\firestore_v1\base_batch.py", line 111, in set
    write_pbs = _helpers.pbs_for_set_no_merge(
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\venv\lib\site-packages\google\cloud\firestore_v1\_helpers.py", line 705, in pbs_for_set_no_merge
    extractor = DocumentExtractor(document_data)
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\venv\lib\site-packages\google\cloud\firestore_v1\_helpers.py", line 505, in __init__
    for field_path, value in iterator:
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\venv\lib\site-packages\google\cloud\firestore_v1\_helpers.py", line 447, in extract_fields
    sub_key = FieldPath(key)
  File "D:\CyberProyectos\ElTerrorDeLosPoliticos\v1\venv\lib\site-packages\google\cloud\firestore_v1\field_path.py", line 272, in __init__
    raise ValueError(error)
ValueError: One or more components is not a string or is empty.


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source