execl_into_mongo.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  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_all'] # 替换为你的集合名称
  8. # 读取 Excel 文件中的 '标准样本数据汇总' 工作表
  9. file_path = '/Users/miaobao/Downloads/标准样本数据汇总.xlsx'
  10. sheet_name = '标准样本数据汇总'
  11. # 使用 pandas 读取 Excel 文件
  12. df = pd.read_excel(file_path, sheet_name=sheet_name, na_values=['', 'NA', 'N/A'], dtype={'budget': float, 'bidamount': float})
  13. # 指定需要检查的列名
  14. columns_to_check = ['_id', 'site','toptype','subtype','area','city','buyer','projectname','projectcode','budget','s_winner','bidamount','multipackage','label','href','jyhref'] # 替换为你需要检查的列名
  15. df[columns_to_check] = df[columns_to_check].where(pd.notnull(df[columns_to_check]), '')
  16. # 将 _id 列转换为 ObjectId 类型
  17. df['_id'] = df['_id'].apply(lambda x: ObjectId(str(x)) if x != '' else x)
  18. # 将 DataFrame 转换为字典列表
  19. data = df.to_dict(orient='records')
  20. # 插入数据到 MongoDB
  21. if data:
  22. collection.insert_many(data)
  23. print("数据已成功插入到 MongoDB")
  24. else:
  25. print("没有数据可插入")