Firestore doesn't allow to upload dictionaries. ValueError: One or more components is not a string or is empty
Firestore doesn't allow to upload dictionaries. ValueError: One or more components is not a string or is empty
伙计们。我需要使用 Firestore 上传字典。我的密钥可以使用,但我不知道为什么我无法上传此特定文档。
该项是字典,格式如下:
{
"1": {
"Fecha": "20220222",
"Visitante": "########",
"Visitado": "#######"}
}
函数:
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.
将字典保存为 json,然后读取文件并将读取的文件上传到 firestore 成功了!
伙计们。我需要使用 Firestore 上传字典。我的密钥可以使用,但我不知道为什么我无法上传此特定文档。
该项是字典,格式如下:
{
"1": {
"Fecha": "20220222",
"Visitante": "########",
"Visitado": "#######"}
}
函数:
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.
将字典保存为 json,然后读取文件并将读取的文件上传到 firestore 成功了!