Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何动态创建集合并插入json文件';s将数据输入到它们中的每一个_Python_Pymongo - Fatal编程技术网

Python 如何动态创建集合并插入json文件';s将数据输入到它们中的每一个

Python 如何动态创建集合并插入json文件';s将数据输入到它们中的每一个,python,pymongo,Python,Pymongo,根据ref SO建议,我尝试将一组Json文件数据插入到单个集合中,如下所示: import json import pymongo client = pymongo.MongoClient('mongodb+srv://********:*******@cluster0-kb3os.mongodb.net/test?retryWrites=true&w=majority') db = client['mydb'] test = db['test'] 然后我将json文件设置为a.js

根据ref SO建议,我尝试将一组Json文件数据插入到单个集合中,如下所示:

import json
import pymongo
client = pymongo.MongoClient('mongodb+srv://********:*******@cluster0-kb3os.mongodb.net/test?retryWrites=true&w=majority')
db = client['mydb']
test = db['test']
然后我将json文件设置为a.json、b.json、…、z.json,要将所有这些文件插入到单个集合中,我的做法如下:

file_names = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
json_file_names=[x + '.json' for x in file_names]

for file_name in json_file_names:
    with open(file_name,encoding="utf8") as f:
        file_data = json.load(f)
        for word in file_data:
            word_obj = file_data[word]
            test.insert_one(word_obj)
当查询指向特定字母记录的结果时,我想最好使用单独的集合,这样也可以提高性能,而不是搜索整个集合

我一直在研究如何动态创建集合,以便每个集合都说
a_col
插入了
a.json
数据,
b_col
插入了
b.json


有没有办法做到这一点,任何作为答案的指导性链接或片段都会很有帮助,TIA

在读取每个文件后,在for循环中根据文件名更改集合名。像
test=db[filename]
一样,每次插入数据之前,它都会创建一个新集合。

感谢一位ton mate,对于任何人的参考,在将文件加载到文件后,这行数据会起作用:
test=db[file\u name]