Python代碼片段-Excel導入到MongoDB

有一次遇到一個需求,需要把Excel的數據導入到MongoDB中,表面上感覺就是導入數據很簡單,但實際操作后,發現是比較麻煩的一個事情,一般圖形化的工具對于MongoDB而言,導入選項都是json的,根本沒有Excel的選項,而Excel中的數據包含敏感信息,又不能用在線工具轉換為json,當時為了盡快處理完事情,當時嘗試了Navicate工具,是支持的從Excel讀取插入到MongoDB中。

這個事件結束后,感覺還是有必要要寫個Python的導入腳本,完善自己的工具箱,如果再次遇到相同的問題可以有個PlanB。

代碼雖然沒有幾行,但是勝在好用

import pandas as pd
import pymongoclient = pymongo.MongoClient('mongodb://root:3a20ebec5e29c031be5ce78e6413a0@localhost:27017/admin?directConnection=true')
database = client["db1"]
collection = database["table1"]df = pd.DataFrame(pd.read_excel("工作簿1.xlsx", sheet_name ="Sheet1"))for row in df.itertuples():buf = {}for i,v in enumerate (list(df.columns)):buf [v] = row[i+1]print(buf)collection.insert_one(buf)

構建測試用Excel
在這里插入圖片描述

MongoDB數據展示
在這里插入圖片描述

另附Linux啟動mongodb的docker-compose腳本,windows或macos請自行更改

#!/bin/bash# 在當前目錄下創建mongodb的docker-compose及相關目錄mkdir mongo-shell
mkdir db
openssl rand -base64 745 > keyfile.key
sudo chown 999 keyfile.key
sudo chmod 600 keyfile.key
sudo chown 999 mongo-shellcat > docker-compose.yam <<EOF
version: "3.2"
services:mongo-standalone:image: mongo:4.4restart: alwaysenvironment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: passwordports:- "27017:27017"volumes:- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime- ./db:/data/db- ./keyfile.key:/data/keyfile.keycommand: mongod --keyFile=/data/keyfile.key --auth --port=27017
EOFdocker-compose up -d 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/71839.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/71839.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/71839.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

axios幾種請求類型的格式

Axios 是一個基于 Promise 的 HTTP 客戶端&#xff0c;廣泛用于瀏覽器和 Node.js 中發送 HTTP 請求。它支持多種請求格式&#xff0c;包括 GET、POST、PUT、DELETE 等。也叫RESTful 目錄 一、axios幾種請求類型的格式 1、get請求 2、post請求 3、put請求 4、delete請求 二…

手寫系列——MoE網絡

參考&#xff1a; MOE原理解釋及從零實現一個MOE&#xff08;專家混合模型&#xff09;_moe代碼-CSDN博客 MoE環游記&#xff1a;1、從幾何意義出發 - 科學空間|Scientific Spaces 深度學習之圖像分類&#xff08;二十八&#xff09;-- Sparse-MLP(MoE)網絡詳解_sparse moe…

Linux的基礎指令和環境部署,項目部署實戰(下)

目錄 上一篇&#xff1a;Linxu的基礎指令和環境部署&#xff0c;項目部署實戰&#xff08;上&#xff09;-CSDN博客 1. 搭建Java部署環境 1.1 apt apt常用命令 列出所有的軟件包 更新軟件包數據庫 安裝軟件包 移除軟件包 1.2 JDK 1.2.1. 更新 1.2.2. 安裝openjdk&am…

【藍橋杯】第十五屆省賽大學真題組真題解析

【藍橋杯】第十五屆省賽大學真題組真題解析 一、智能停車系統 1、知識點 &#xff08;1&#xff09;flex-wrap 控制子元素的換行方式 屬性值有&#xff1a; no-wrap不換行wrap伸縮容器不夠則自動往下換行wrap-reverse伸縮容器不夠則自動往上換行 &#xff08;2&#xff0…

flink operator v1.10對接華為云對象存儲OBS

1 概述 flink operator及其flink集群&#xff0c;默認不直接支持華為云OBS&#xff0c;需要在這些java程序的插件目錄放一個jar包&#xff0c;以及修改flink配置后&#xff0c;才能支持集成華為云OBS。 相關鏈接參考&#xff1a; https://support.huaweicloud.com/bestpracti…

免費PDF工具

Smallpdf.com - A Free Solution to all your PDF Problems Smallpdf - the platform that makes it super easy to convert and edit all your PDF files. Solving all your PDF problems in one place - and yes, free. https://smallpdf.com/#rappSmallpdf.com-解決您所有PD…

去中心化技術P2P框架

中心化網絡與去中心化網絡 1. 中心化網絡 在傳統的中心化網絡中&#xff0c;所有客戶端都通過一個中心服務器進行通信。這種網絡拓撲結構通常是一個星型結構&#xff0c;其中服務器作為中心節點&#xff0c;每個客戶端只能與服務器通信。如果客戶端之間需要通信&#xff0c;必須…

muduo源碼閱讀:linux timefd定時器

?timerfd timerfd 是Linux一個定時器接口&#xff0c;它基于文件描述符工作&#xff0c;并通過該文件描述符的可讀事件進行超時通知。可以方便地與select、poll和epoll等I/O多路復用機制集成&#xff0c;從而在沒有處理事件時阻塞程序執行&#xff0c;實現高效的零輪詢編程模…

Pinia 3.0 正式發布:全面擁抱 Vue 3 生態,升級指南與實戰教程

一、重大版本更新解析 2024年2月11日&#xff0c;Vue 官方推薦的狀態管理庫 Pinia 迎來 3.0 正式版發布&#xff0c;本次更新標志著其全面轉向 Vue 3 技術生態。以下是開發者需要重點關注的升級要點&#xff1a; 1.1 核心變更說明 特性3.0 版本要求兼容性說明Vue 支持Vue 3.…

【圖像處理 --- Sobel 邊緣檢測的詳解】

Sobel 邊緣檢測的詳解 目錄 Sobel 邊緣檢測的詳解1. 梯度計算2. 梯度大小3. 梯度方向4. 非極大值抑制5. 雙閾值處理6. 在 MATLAB 中實現 Sobel 邊緣檢測7.運行結果展示8.關鍵參數解釋9.實驗與驗證 Sobel 邊緣檢測是一種經典的圖像處理算法&#xff0c;用于檢測圖像中的邊緣。它…

LeetCode 熱題100 15. 三數之和

LeetCode 熱題100 | 15. 三數之和 大家好&#xff0c;今天我們來解決一道經典的算法題——三數之和。這道題在 LeetCode 上被標記為中等難度&#xff0c;要求我們從一個整數數組中找到所有不重復的三元組&#xff0c;使得三元組的和為 0。下面我將詳細講解解題思路&#xff0c…

基因組組裝中的術語1——from HGP

Initial sequencing and analysis of the human genome | Nature 1&#xff0c;分層鳥槍法測序hierarchical shotgun sequencing

安全開發-環境選擇

文章目錄 個人心得虛擬機選擇ubuntu 22.04python環境選擇conda下載使用&#xff1a; 個人心得 在做開發時配置一個專門的環境可以使我們在開發中的效率顯著提升&#xff0c;可以避免掉很多環境沖突的報錯。尤其是python各種版本沖突&#xff0c;還有做滲透工具不要選擇windows…

數字體驗驅動用戶參與增效路徑

內容概要 在數字化轉型深化的當下&#xff0c;數字內容體驗已成為企業與用戶建立深度連接的核心切入點。通過個性化推薦引擎與智能數據分析系統的協同運作&#xff0c;企業能夠實時捕捉用戶行為軌跡&#xff0c;構建精準的用戶行為深度洞察模型。這一模型不僅支撐內容分發的動…

Python 字符串(str)全方位剖析:從基礎入門、方法詳解到跨語言對比與知識拓展

Python 字符串&#xff08;str&#xff09;全方位剖析&#xff1a;從基礎入門、方法詳解到跨語言對比與知識拓展 本文將深入探討 Python 中字符串&#xff08;str&#xff09;的相關知識&#xff0c;涵蓋字符串的定義、創建、基本操作、格式化等內容。同時&#xff0c;會將 Py…

使用C++實現簡單的TCP服務器和客戶端

使用C實現簡單的TCP服務器和客戶端 介紹準備工作1. TCP服務器實現代碼結構解釋 2. TCP客戶端實現代碼結構解釋 3. 測試1.編譯&#xff1a;2.運行 結語 介紹 本文將通過一個簡單的例子&#xff0c;介紹如何使用C實現一個基本的TCP服務器和客戶端。這個例子展示了如何創建服務器…

Java Web開發實戰與項目——Spring Boot與Spring Cloud微服務項目實戰

企業級應用中&#xff0c;微服務架構已經成為一種常見的開發模式。Spring Boot與Spring Cloud提供了豐富的工具和組件&#xff0c;幫助開發者快速構建、管理和擴展微服務應用。本文將通過一個實際的微服務項目&#xff0c;展示如何使用Spring Boot與Spring Cloud構建微服務架構…

VMware建立linux虛擬機

本文適用于初學者&#xff0c;幫助初學者學習如何創建虛擬機&#xff0c;了解在創建過程中各個選項的含義。 環境如下&#xff1a; CentOS版本&#xff1a; CentOS 7.9&#xff08;2009&#xff09; 軟件&#xff1a; VMware Workstation 17 Pro 17.5.0 build-22583795 1.配…

Linux8-互斥鎖、信號量

一、前情回顧 void perror(const char *s);功能&#xff1a;參數&#xff1a; 二、資源競爭 1.多線程訪問臨界資源時存在資源競爭&#xff08;存在資源競爭、造成數據錯亂&#xff09; 臨界資源&#xff1a;多個線程可以同時操作的資源空間&#xff08;全局變量、共享內存&a…

LD_PRELOAD 繞過 disable_function 學習

借助這位師傅的文章來學習通過LD_PRELOAD來繞過disable_function的原理 【PHP繞過】LD_PRELOAD bypass disable_functions_phpid繞過-CSDN博客 感謝這位師傅的貢獻 介紹 靜態鏈接&#xff1a; &#xff08;1&#xff09;舉個情景來幫助理解&#xff1a; 假設你要搬家&#x…