Итак, у меня есть папка с 500 файлами JSON. Мне нужно загрузить их все в локальную базу данных mongodb. Я пытался использовать Mongo Compass, но Compass может загружать только один файл за раз. В Python я пытался написать простой код, чтобы перебирать папки и загружать их по очереди, но столкнулся с некоторыми проблемами. Прежде всего, файлы JSON не разделены запятыми, а скорее разделены строкой. Итак, файлы выглядят так:
{ some JSON object }
{ some JSON object }
...
Я написал следующий код для перебора папки и загрузки ее:
import pymongo
import json
import pandas as pd
import numpy as np
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient['Test']
mycol = mydb['data']
directory = os.fsencode("C:/Users/PB/Desktop/test/")
for file in os.listdir(directory):
filename = os.fsdecode(file)
if filename.endswith(".json"):
mycol.insert_many(filename)
Код в основном проходит через папку, проверяет, является ли это файл .json, а затем вставляет его в базу данных. Вот что должно произойти. Тем не менее, я получаю эту ошибку:
TypeError: документ должен быть экземпляром dict, bson.son.SON,
bson.raw_bson.RawBSONDocument или тип, который наследуется от
collections.MutableMapping
Я не могу загрузить его через python. Я пробовал несколько вариантов кода, но по какой-то причине питон не принимает файлы json.
Проблема с этими файлами заключается в том, что python допускает только файлы JSON, разделенные запятыми.
Как я могу это исправить, чтобы загрузить все файлы?