Я потратил много времени на это и наконец решил опубликовать это здесь. Проблема: у меня есть CSV-файл, который я хочу загрузить в Firestore.
- Я конвертирую CSV в json, используя json lib в python3
- Загрузите этот json в firestore
from urllib.request import urlopen #No issue
import csv #No issue
import json #No issue
import codecs #No issue
db = firestore.Client() #No issue
def firestore_upload(event, context): #No issue
url = event['mediaLink'] #No issue
print(url) #No issue
csvFile = urlopen(url) #No issue
csvReader = csv.DictReader(codecs.iterdecode(csvFile, 'utf-8')) #No issue
for line in csvReader: #No issue
jsonline = json.dumps(line) #No issue
print(jsonline) #No issue
db_collection_document = db.collection(u'mlacademyRSA').document(None) #No issue
print('inserting record') #No issue
db_collection_document.set(jsonline) #Fails
db_collection_document.set({"ProductID": "00000001"}) # works fine when i try to put raw json data instead of jsonline
Я не могу добавить переменную jsonline в коллекцию в firestore. Но я могу поместить необработанные json данные / объект в одну и ту же коллекцию.
Короткая строка в моем коде, т.е. db_collection_document.set ({"ProductID": "00000001"}) работает нормально, но не db_collection_document .set (jsonline).
Я проверил достоверность json данных в jsonline, напечатав jsonline и вставив эти выходные данные в различные json валидаторы, которые все говорят, что они в действительном формате json. Пожалуйста, помогите.
Спасибо xytiz