execl_into_mongo.py 1.2 KB

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