วิธีการดึงข้อมูลจากฐานข้อมูลใน Python? การนำเข้าข้อมูลโดยใช้ Python
เผยแพร่แล้ว: 2021-03-09การวิเคราะห์ข้อมูลเป็นทักษะที่จำเป็นสำหรับผู้สำเร็จการศึกษา วิศวกร และผู้จัดการรุ่นเยาว์ในสภาพแวดล้อมการทำงานที่ใช้เทคโนโลยีในปัจจุบัน ในบทความนี้ เราจะพูดถึง วิธีการดึงข้อมูลจากฐานข้อมูลใน python และช่วยให้คุณเข้าใจแนวคิดพื้นฐานบางอย่างได้อย่างรวดเร็ว
สารบัญ
การดึงข้อมูลด้วย P ython Database
การดึงข้อมูลทำให้เกิดการดึงข้อมูลจากแหล่งต่าง ๆ และบางครั้งประมวลผลเพิ่มเติม และโยกย้ายไปยังที่เก็บสำหรับการวิเคราะห์เพิ่มเติม ดังนั้นการแปลงข้อมูลบางประเภทจึงเกิดขึ้นในกระบวนการ และ python เป็นหนึ่งในภาษาการเขียนโปรแกรมชั้นนำสำหรับงานด้านวิทยาศาสตร์ข้อมูลดังกล่าว มี ผู้ใช้ ภาษาเอนกประสงค์และภาษาสคริปต์นี้ ประมาณ 8.2 ล้านคน ทั่วโลก
ในคู่มือต่อไปนี้ เราจะพูดถึงวิธีการแยกข้อมูลโดยใช้ PostgreSQL ซึ่งเป็นระบบฐานข้อมูลเชิงสัมพันธ์แบบโอเพนซอร์ส มีฟังก์ชัน ROW_TO_JSON ที่ส่งคืนชุดผลลัพธ์เป็นออบเจ็กต์ JSON ซึ่งล้อมรอบด้วยวงเล็บปีกกา {} ประเภทข้อมูล JSON จะช่วยให้คุณจัดการผลลัพธ์การสืบค้นได้สะดวกยิ่งขึ้น แต่ก่อนที่เราจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งสภาพแวดล้อมเสมือน เช่น psycopg2-binary
ข้อมูล พื้นฐานเกี่ยวกับ ฐานข้อมูล Python
สมมติว่าคุณมีฐานข้อมูล PostgreSQL ของ American National Football League (NFL) ซึ่งจะรวมถึงข้อมูลเกี่ยวกับผู้เล่น โค้ช และตารางของทีม นอกจากนี้ ให้สังเกตรายละเอียดต่อไปนี้เพื่อรับเบาะแสเกี่ยวกับข้อมูลที่เก็บไว้:
- ตารางข้อมูลผู้เล่นจะมีรายละเอียดต่างๆ เช่น athelete_id ซึ่งเป็นคีย์หลัก ชื่อและนามสกุลของผู้เล่น หมายเลขเสื้อ น้ำหนัก (กก.) ส่วนสูง (ม.) และประเทศต้นทาง นอกจากนี้ยังถือ team_id ซึ่งเป็นกุญแจต่างประเทศที่ระบุทีมนักกีฬาแต่ละคน
- ตารางข้อมูลเกี่ยวกับโค้ชมี coach_id (คีย์หลัก) พร้อมด้วยชื่อและนามสกุล และ team_id (คีย์ต่างประเทศที่อ้างอิงฟิลด์ตารางของทีม)
- สุดท้าย มีตารางของทีมที่อธิบายชื่อทีมฟุตบอล การประชุม อันดับ และการชนะและการสูญเสียทั้งหมด (แบ่งเป็น 'เจ้าบ้าน' และ 'ทีมเยือน') ในที่นี้ คีย์หลักคือ team_id ซึ่งมีการอ้างอิงในตารางด้านบน
เมื่อคุณคุ้นเคยกับชุดข้อมูลแล้ว ให้เราสำรวจวิธีเขียนแบบสอบถาม SQL เพื่อดึงรายชื่อทีม ตัวอย่างเช่น คุณต้องการทีมฟุตบอลที่จัดลำดับตามการประชุมและอันดับของพวกเขา คุณยังต้องการแยกจำนวนนักกีฬาหรือผู้เล่นในแต่ละทีมพร้อมกับชื่อโค้ชของพวกเขาด้วย คุณอาจต้องการทราบจำนวนการชนะและแพ้ของทีมทั้งในบ้านและนอกบ้าน
ทำตามขั้นตอนด้านล่างเพื่อเริ่มกระบวนการนี้:
เลือก
f.name,
ฉ.เมือง
ฉ.การประชุม
f.conference_rank,
COUNT(a.player_id) AS number_of_athletes,
CONCAT(c.first_name, ' ', c.last_name) ในฐานะโค้ช
f.home_wins,
f.away_wins
จาก นักกีฬา a, ทีม f, ผู้ฝึกสอน c
โดยที่ a.team_id = f.team_id
และ c.team_id = f.team_id
กลุ่มตาม f.name, c.first_name, c.last_name, f.city, f.conference, f.conference_rank, f.home_wins, f.away_wins
เรียงตาม f.conference, f.conference_rank
หลังจากนี้ คุณสามารถวาร์ปการสืบค้นภายในฟังก์ชัน JSON ที่เรากล่าวถึงก่อนหน้านี้ (ROW_TO_JSON) การดำเนินการนี้จะบันทึกข้อมูลลงในไฟล์ชื่อ query.sql ในไดเร็กทอรีปัจจุบันของคุณ ตอนนี้ ดำเนินการตามขั้นตอนด้านล่าง
เลือก ROW_TO_JSON(team_info) จาก (
เลือก
f.name,
ฉ.เมือง
ฉ.การประชุม
f.conference_rank,
COUNT(a.athelete_id)AS number_of_atheletes,
CONCAT(c.first_name, ' ', c.last_name) ในฐานะโค้ช
f.home_wins,
f.away_wins
จาก นักกีฬา a, ทีม f, ผู้ฝึกสอน c
โดยที่ a.team_id = f.team_id
และ c.team_id = f.team_id
กลุ่มตาม f.name, c.first_name, c.last_name, f.city, f.conference, f.conference_rank, f.home_wins, f.away_wins
เรียงตาม f.conference, f.conference_rank
) AS team_info
คุณจะสังเกตว่าแต่ละแถวมีโครงสร้างของพจนานุกรมหลาม คีย์เป็นเพียงชื่อฟิลด์ที่ส่งคืนโดยคิวรีของคุณ
นอกจากนี้ เพื่อหลีกเลี่ยงไม่ให้ตัวแปรสภาพแวดล้อมของคุณเปิดเผย คุณสามารถนำการเปลี่ยนแปลงบางอย่างไปใช้กับไฟล์การเริ่มต้นของคุณได้ เลือกวิธีการใดๆ ต่อไปนี้ ขึ้นอยู่กับความต้องการของคุณ:
- สำหรับ Windows: แผงควบคุม → ระบบ → การตั้งค่าระบบขั้นสูง → แท็บขั้นสูง → ตัวแปรสภาพแวดล้อม
- สำหรับสภาพแวดล้อมที่เหมือน Unix: ต่อท้ายสองบรรทัดเกี่ยวกับชื่อผู้ใช้และรหัสผ่านของคุณเข้ากับไฟล์การเริ่มต้นของคุณ
เท่านี้คุณก็พร้อมที่จะเขียนโค้ดหลามได้แล้ว ในตอนเริ่มต้น เราจะนำเข้าโมดูลและฟังก์ชันบางอย่างเพื่อป้องกันข้อผิดพลาด ข้อความเหล่านี้สามารถช่วยให้คุณบรรลุผลดังนี้:
นำเข้าระบบปฏิบัติการ
นำเข้า psycopg2 เป็น p
จากข้อผิดพลาดการนำเข้า psycopg2
จากนั้น เราจะสร้างอินสแตนซ์ของการเชื่อมต่อด้วยการโหลดเนื้อหาของ query.sql เปิดไฟล์ฐานข้อมูล SQL โดยใช้คำสั่งเปิดและอ่าน และเชื่อมต่อกับฐานข้อมูล NFL โดยใช้ฟังก์ชันเชื่อมต่อโดยระบุผู้ใช้ฐานข้อมูล รหัสผ่าน โฮสต์ และหมายเลขพอร์ต
อ่านเพิ่มเติม: โครงการ Python บน GitHub
วิธีการดึงข้อมูลจากฐานข้อมูลใน Python?
เมื่อคุณสร้างการเชื่อมต่อฐานข้อมูลแล้ว คุณสามารถดำเนินการค้นหาต่อได้ คุณต้องใช้โครงสร้างการควบคุมที่เรียกว่า 'เคอร์เซอร์' ง่ายพอๆ กับการเขียน “cursor = conn.cursor()” และต่อมาคือ “cursor.execute(query)” ผลลัพธ์จะมีรายการสิ่งอันดับ (หนึ่งองค์ประกอบ) ในรูปแบบพจนานุกรม
ผลลัพธ์ = cursor.fetchall()
ในขั้นตอนนี้ คุณสามารถลองทำซ้ำกับผลลัพธ์ได้ คุณสามารถจัดการเนื้อหาตามที่คุณต้องการ แทรกหรือป้อนลงในสเปรดชีต ตาราง HTML ฯลฯ อย่าลืมห่อและทำความสะอาดโค้ดของคุณในขณะที่คุณทำเสร็จ คุณสามารถทำได้ด้วยการลองยกเว้นบล็อกและเพิ่มประโยค 'สุดท้าย'
เมื่อคุณจัดการชุดข้อมูลขนาดใหญ่ เชิงสัมพันธ์หรืออย่างอื่น คุณรู้สึกว่าจำเป็นต้องใช้เครื่องมือพื้นฐานในการสืบค้นตาราง โดยเฉพาะอย่างยิ่งเมื่อคุณต้องการจัดการผลลัพธ์ด้วย การแปลงข้อมูลดังกล่าวทำได้ง่ายด้วย python
ดังนั้นโปรแกรมการศึกษาระดับสูงกว่าปริญญาตรีส่วนใหญ่จึงรวมความรู้เกี่ยวกับเทคนิคเหล่านี้ไว้เป็นส่วนหนึ่งของหลักสูตร ตัวอย่างบางส่วน ได้แก่ Associate Diploma in Data Science (IIIT-บังกาลอร์) และ Global Master Certificate in Business Analytics (Michigan State University)
ชำระเงิน: แนวคิดโครงการโอเพ่นซอร์สของ Python
บทสรุป
ใน บทช่วยสอน ฐานข้อมูล python นี้ เราได้เรียนรู้วิธีเชื่อมต่อฐานข้อมูลเชิงสัมพันธ์ ดำเนินการค้นหา และนำเข้าผลลัพธ์ คุณสามารถทำสิ่งต่างๆ ได้มากขึ้นด้วย python และปรับโค้ดของคุณเพื่อทำสิ่งที่คุณต้องการ
เราหวังว่าคู่มือนี้จะช่วยให้คุณพบความชัดเจนและกระตุ้นความอยากรู้อยากเห็นของคุณ!
เรียนรู้หลักสูตรวิทยาศาสตร์ข้อมูลจากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
คุณจะดึงข้อมูลจาก API โดยใช้คำขอ Python ได้อย่างไร
เมื่อคุณต้องการรับข้อมูลจาก API คุณต้องทำการร้องขอจากเซิร์ฟเวอร์ เช่นเดียวกับเมื่อคุณโต้ตอบกับเว็บไซต์ทั่วไป เราจะต้องใช้แพ็คเกจคำขอเพื่อรับข้อมูลจาก API โดยใช้ Python ใน Python คำขอคือไลบรารีมาตรฐานสำหรับการสร้างคำขอ HTTP เนื่องจากเป็นนามธรรม มันจึงใช้งานง่ายมาก โดยเฉพาะอย่างยิ่งเมื่อทำงานกับ API
เมื่อเราใช้ไลบรารีคำขอเพื่อเรียกใช้คำขอ เราได้รับออบเจ็กต์คำขอที่มีข้อมูลที่เราต้องการแยกออกพร้อมทั้งรหัสสถานะคำขอ รหัสสถานะแจ้งให้เราทราบเกี่ยวกับสถานะของคำขอ และเป็นส่วนหนึ่งของทุกคำขอที่เราทำ รหัสจะแบ่งออกเป็นค่าต่างๆ หลายร้อยค่า ทั้งนี้ขึ้นอยู่กับข้อมูลที่ส่งคืน
จะเชื่อมต่อ SQLite กับ Python ได้อย่างไร
ก. เราต้องนำเข้า sqlite3 เพื่อใช้ SQLite
ข. จากนั้นใช้วิธีเชื่อมต่อ ทำการเชื่อมต่อและระบุชื่อฐานข้อมูลที่คุณต้องการเข้าถึง หากมีไฟล์ที่มีชื่อนั้นอยู่ ไฟล์นั้นจะถูกเปิดขึ้น Python จะสร้างไฟล์ด้วยชื่อที่ให้มาหากคุณไม่ได้ระบุ
ค. หลังจากนั้น วัตถุเคอร์เซอร์จะถูกสร้างขึ้นซึ่งอาจส่งคำสั่ง SQL เคอร์เซอร์เป็นโครงสร้างการควบคุมสำหรับการสำรวจและดึงข้อมูลบันทึกฐานข้อมูล เมื่อต้องรับมือกับ Python เคอร์เซอร์นั้นสำคัญมาก วัตถุเคอร์เซอร์จะใช้เพื่อดำเนินการคำสั่งทั้งหมด
ง. สร้างอ็อบเจ็กต์และเขียนคำสั่ง SQL ลงไปพร้อมกับความคิดเห็นเพื่อสร้างตารางในฐานข้อมูล ตัวอย่าง: - sql_comm = คำสั่ง SQL
อี และการรันคำสั่งนั้นง่ายมาก ดำเนินการเมธอดเคอร์เซอร์ โดยส่งชื่อของคำสั่ง sql เป็นอาร์กิวเมนต์ บันทึกรายการคำสั่งเป็นตัวแปร sql_comm และรันคำสั่งเหล่านั้น หลังจากที่คุณทำงานทั้งหมดของคุณเสร็จเรียบร้อยแล้ว ให้บันทึกการแก้ไขลงในไฟล์โดยดำเนินการแก้ไข จากนั้นยกเลิกการเชื่อมต่อ
Python ดีสำหรับฐานข้อมูลหรือไม่?
Python เหมาะอย่างยิ่งสำหรับข้อมูลตารางที่มีโครงสร้างซึ่งสามารถรับได้ด้วย SQL แต่ต้องมีการจัดการเพิ่มเติมซึ่งจะทำได้ยากด้วย SQL เพียงอย่างเดียว