这里最多是可以遍历出4级的表结构,如果级数更多,可以按照代码,稍作修改即可。
import pprint
import pymongo
myclient=pymongo.MongoClient("mongodb://localhost:27017/")
dblist=myclient.list_database_names()
drug_bp=myclient["数据库名"]
test_examine=drug_bp["集合名"]
test_find_all=test_examine.find()
structure ={}
for test_find_one in test_find_all:
# 提炼一个表的表结构
keys = test_find_one.keys()
keys = list(keys)
for key in keys:
if key not in structure:
structure[key]={}
if isinstance(test_find_one[key], dict):
keys1=list(test_find_one[key])
for key1 in keys1:
if key1 not in structure[key]:
structure[key][key1]={}
if isinstance(test_find_one[key][key1], dict):
keys2=list(test_find_one[key][key1])
for key2 in keys2:
if key2 not in structure[key][key1]:
structure[key][key1][key2]={}
if isinstance(test_find_one[key][key1][key2], dict):
keys3 = list(test_find_one[key][key1][key2])
for key3 in keys3:
if key3 not in structure[key][key1][key2]:
structure[key][key1][key2][key3]={}
pprint.pprint(structure)