import pandas as pd from pymongo import MongoClient from bson.objectid import ObjectId # 连接到 MongoDB client = MongoClient('mongodb://192.168.3.149:27180/') db = client['data_quality'] # 替换为你的数据库名称 collection = db['standard_sample_data'] # 替换为你的集合名称 # 读取 Excel 文件 excel_file_path = 'sample_data.xlsx' # 替换为你的 Excel 文件路径 # 尝试读取 Excel 文件,并指定 dtype 参数 df = pd.read_excel(excel_file_path, na_values=['', 'NA', 'N/A'], dtype={'budget': float, 'bidamount': float}) # 指定需要检查的列名 columns_to_check = ['_id', 'site','toptype','subtype','area','city','buyer','projectname','projectcode','budget','s_winner','bidamount','multipackage','href','jyhref'] # 替换为你需要检查的列名 df[columns_to_check] = df[columns_to_check].where(pd.notnull(df[columns_to_check]), '') # 将 _id 列转换为 ObjectId 类型 df['_id'] = df['_id'].apply(lambda x: ObjectId(str(x)) if x != '' else x) # 将 DataFrame 转换为字典列表 data = df.to_dict(orient='records') # 插入数据到 MongoDB if data: collection.insert_many(data) print("数据已成功插入到 MongoDB") else: print("没有数据可插入")