我有一个.csv
文件。
例如:
record-1a, record-1b, record-1c, document-name-1
record-2a, record-2b, record-2c, document-name-2
我想解决的是,在运行我的python脚本后,它将创建2个文档(取决于.csv中的行数),名称为document-name-N
。
这是我现在的代码:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
from array import array
import csv
cred = credentials.Certificate('firebase-sdk.json')
with open('foo/bar/file.csv', 'r', newline='', encoding="utf8") as file:
reader = csv.reader(file)
data = []
for row in reader:
data.append(row)
firebase_admin.initialize_app(cred)
db = firestore.client()
doc_ref = db.collection('collectionname').document(row[3])
for item in data:
doc_ref.set({
'someArray': [],
'column1': item[0],
'column2': item[1],
'column3': item[2]
})
我已经看过这个文档了:https://firebase.google.com/docs/firestore/manage-data/transactions
但没能帮我找到解决办法
2条答案
按热度按时间4c8rllxm1#
在第一个代码示例中,您在
for
循环中使用了doc_ref
,所以我猜运行脚本后的结果是,只生成了一个包含JSON文件最后一行数据的文档。实际的行为是立即用该文件的每一行覆盖文档。在第二个示例中,您将为每一行创建一个新引用,因此它将为每一行生成不同的文档。ldxq2e6h2#
我找到了解决方案:
我是一个小初学者与python,所以我几乎不知道是什么问题。如果有人能就这个问题写几行字,我会很高兴的。