12345678910111213141516171819202122232425262728293031 |
- 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("没有数据可插入")
|