将mongo表导出为json文件
import pymongo
import pandas as pd
# MongoDB 连接配置
mongo_uri = "mongodb://127.0.0.1:27017/"
database_name = "data"
collection_name = "json_data"
# 连接到 MongoDB
client = pymongo.MongoClient(mongo_uri)
db = client[database_name]
collection = db[collection_name]
# 从 MongoDB 集合中检索数据
cursor = collection.find()
data_list = list(cursor)
# 将数据转换为 Pandas DataFrame
df = pd.DataFrame(data_list)
# 将 '_id' 字段转换为字符串,因为它是一个 ObjectId 对象
df['_id'] = df['_id'].astype(str)
# 将 DataFrame 保存为 JSON 文件
# 注意:'orient='records''将生成一个JSON列表,每个记录都是一个对象
# 如果你想要一个不同的格式(例如整个 DataFrame 作为一个对象),你可以改变 orient 参数
df.to_json('aaa.json', orient='records', force_ascii=False)
# 关闭 MongoDB 连接
client.close()
或者
# 使用 'replace' 或 'ignore' 来处理非法字符
cleaned_df = data.applymap(lambda x: x.encode('utf-8', 'replace').decode('utf-8') if isinstance(x, str) else x)
#
# 然后尝试保存为JSON
cleaned_df.to_json('rd_t_cases_240301.json', orient='records', lines=True, force_ascii=False)
将json导入mongo表
import json
from pymongo import MongoClient
# 替换为您的 MongoDB 连接详细信息
client = MongoClient('mongodb://admin:admin@127.0.0.1:27017/')
db = client['sfc_radar']
collection = db['rd_t_files']
# 打开 JSON 文件并加载数据
with open(r'C:/Users/dell/Desktop/rd_t_files.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 如果 JSON 文件包含多个文档(即数组),可以使用 insert_many 方法
if isinstance(data, list):
collection.insert_many(data)
else:
collection.insert_one(data)
print("数据导入完成")