Trích xuất dữ liệu từ tệp Excel Python

Thư viện mà chúng tôi đã xác định để phân tích cú pháp các tệp Excel là

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
9. Thư viện này là một phần của loạt thư viện để làm việc với các tệp Excel trong Python

Có ba thư viện chính để xử lý các tệp Excel

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
9

Đọc các tệp Excel

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')

for sheet in book.sheets():
    print sheet.name
1

Viết và định dạng tệp Excel

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')

for sheet in book.sheets():
    print sheet.name
2

Bộ công cụ cho các thao tác nâng cao hơn trong Excel (yêu cầu

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
9 và
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')

for sheet in book.sheets():
    print sheet.name
1)

Bạn sẽ cần cài đặt riêng từng cái nếu muốn sử dụng chúng; . Bởi vì chúng tôi muốn đọc các tệp Excel sang Python, bạn sẽ cần đảm bảo rằng bạn đã cài đặt

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
9 trước khi tiếp tục

________số 8_______

Thiết lập môi trường làm việc của bạn cho tệp Excel này bằng cách thực hiện như sau (hoặc điều gì đó tương tự, tùy thuộc vào hệ thống tổ chức của bạn)

  1. Tạo một thư mục cho công việc Excel của bạn

  2. Tạo một tệp Python mới có tên là parse_excel. py và đặt nó vào thư mục bạn đã tạo

  3. Đặt tệp Excel từ kho sách có tên SOWC 2014 Stat Tables_Table 9. xlsx trong cùng một thư mục

Từ thư mục này, nhập lệnh sau trong thiết bị đầu cuối của bạn để chạy tập lệnh từ dòng lệnh

python parse_excel.py

Đến cuối chương này, chúng ta sẽ viết một kịch bản để phân tích dữ liệu về lao động trẻ em và hôn nhân được lưu trữ trong tệp Excel này

Để bắt đầu tập lệnh của chúng tôi, chúng tôi cần nhập

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
9 và mở sổ làm việc Excel của chúng tôi bằng Python. Chúng tôi lưu trữ tệp đã mở trong biến
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')

for sheet in book.sheets():
    print sheet.name
8

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')

Không giống như CSV, sách Excel có thể có nhiều tab hoặc trang tính. Để lấy dữ liệu của chúng tôi, chúng tôi sẽ chỉ lấy ra trang tính có dữ liệu chúng tôi muốn

Nếu bạn có một vài trang tính, bạn chỉ có thể đoán theo chỉ mục, nhưng điều đó sẽ không hiệu quả nếu bạn có nhiều trang tính. Vì vậy, bạn nên biết về sổ lệnh. sheet_by_name(______2_______9), trong đó

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')

for sheet in book.sheets():
    print sheet.name
9 là tên của trang tính bạn muốn truy cập

Hãy kiểm tra tên của các trang tính chúng tôi có

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')

for sheet in book.sheets():
    print sheet.name

Trang tính mà chúng tôi đang tìm kiếm là

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
1. Vì vậy, hãy đưa điều đó vào kịch bản của chúng ta

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet

Nếu bạn chạy mã đó, nó sẽ thoát ra với lỗi cung cấp cho bạn thông tin sau

xlrd.biffh.XLRDError: No sheet named <'Table 9'>

Tại thời điểm này, bạn có thể thực sự bối rối. Vấn đề nằm ở sự khác biệt giữa những gì chúng ta nhìn thấy và những gì thực sự tồn tại

Nếu bạn mở sổ làm việc Excel của mình và chọn tên của trang tính bằng cách bấm đúp vào nó, bạn sẽ thấy có một khoảng trống thừa ở cuối. Không gian này không hiển thị cho người dùng trong trình duyệt. Trong phần này, chúng ta sẽ tìm hiểu cách khắc phục sự cố này trong Python. Hiện tại, hãy cập nhật mã của bạn để phản ánh khoảng trống

Thay đổi dòng này

sheet = book.sheet_by_name('Table 9')

để này

sheet = book.sheet_by_name('Table 9 ')

Bây giờ, nếu chúng tôi chạy tập lệnh của mình thì nó sẽ hoạt động. Bạn sẽ thấy đầu ra tương tự như thế này

Hãy khám phá những gì chúng ta có thể làm với một trang tính. Thêm phần sau sau khi bạn gán biến

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
2 và chạy lại tập lệnh của mình

print dir(sheet)

Trong danh sách được trả về, bạn sẽ thấy một phương thức có tên là

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
3. Chúng tôi sẽ sử dụng phương pháp này để lặp lại trên tất cả các hàng. Nếu chúng ta viết
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
4, tổng số hàng sẽ được trả về

Hãy thử ngay bây giờ

python parse_excel.py
0

Lẽ ra bạn nên quay lại

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
5. Chúng ta cần lặp qua từng hàng, có nghĩa là chúng ta cần một vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6. Như chúng ta đã học trong , các vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 lặp lại các mục trong danh sách, vì vậy chúng ta cần biến
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
5 thành một danh sách mà chúng ta có thể lặp lại hơn 303 lần. Để làm điều này, chúng ta sẽ sử dụng hàm
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
9

Với việc bổ sung hàm

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
9, chúng ta có thể chuyển đổi
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
5 thành một danh sách mà vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 của chúng ta có thể lặp lại, tập lệnh của chúng ta sẽ giống như sau

python parse_excel.py
1

Lặp lại chỉ mục

xlrd.biffh.XLRDError: No sheet named <'Table 9'>
3 trong
xlrd.biffh.XLRDError: No sheet named <'Table 9'>
4, đây sẽ là danh sách gồm 303 số nguyên tăng dần một

Đầu ra

xlrd.biffh.XLRDError: No sheet named <'Table 9'>
3, sẽ là các số từ 0 đến 302

Từ đây, chúng ta cần thực hiện tra cứu trên từng hàng để lấy ra nội dung của từng hàng thay vì chỉ in số. Để thực hiện tra cứu, chúng tôi sẽ sử dụng

xlrd.biffh.XLRDError: No sheet named <'Table 9'>
3 làm tham chiếu chỉ mục để lấy hàng thứ n

Để lấy các giá trị của từng hàng, chúng tôi sẽ sử dụng

xlrd.biffh.XLRDError: No sheet named <'Table 9'>
7, đây là một phương thức khác được trả về bởi
xlrd.biffh.XLRDError: No sheet named <'Table 9'>
8 trước đó. Chúng ta có thể thấy từ tài liệu
xlrd.biffh.XLRDError: No sheet named <'Table 9'>
7 rằng phương thức mong đợi một số chỉ mục và trả về các giá trị của hàng tương ứng. Cập nhật vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 của bạn để phản ánh điều này và chạy lại tập lệnh của bạn

python parse_excel.py
2

Sử dụng

xlrd.biffh.XLRDError: No sheet named <'Table 9'>
3 làm chỉ mục để tra cứu các giá trị của hàng. Bởi vì nó nằm trong một vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 kéo dài theo chiều dài của trang tính, nên chúng tôi gọi phương thức này cho mỗi hàng trong trang tính của chúng tôi

Khi bạn chạy mã này, bạn sẽ thấy một danh sách cho mỗi hàng. Sau đây là tập hợp con của dữ liệu bạn sẽ thấy

python parse_excel.py
3

Bây giờ chúng ta có thể xem từng hàng, chúng ta cần lấy thông tin chúng ta muốn. Để giúp chúng tôi xác định thông tin nào chúng tôi cần và cách lấy thông tin đó, việc mở tệp trong chương trình để hiển thị tệp Excel sẽ dễ dàng hơn nhiều, chẳng hạn như Microsoft Excel trên Windows hoặc Numbers trên máy Mac. Nếu bạn truy cập tab thứ hai trên bảng tính, bạn sẽ nhận thấy khá nhiều hàng tiêu đề

Ghi chú

Trong mã của chúng tôi, chúng tôi sẽ nhằm mục đích lấy văn bản tiếng Anh. Tuy nhiên, nếu bạn muốn có thêm thử thách, hãy thử rút ra các tiêu đề và quốc gia bằng tiếng Pháp hoặc tiếng Tây Ban Nha

Trên tab thứ hai, hãy xem thông tin bạn có thể trích xuất và suy nghĩ về cách sắp xếp thông tin đó một cách tốt nhất. Chúng tôi cung cấp một cách có thể để thực hiện việc này tại đây, nhưng có nhiều cách khác nhau bằng cách sử dụng các cấu trúc dữ liệu khác nhau

Đối với bài tập này, chúng ta sẽ lấy số liệu thống kê về lao động trẻ em và tảo hôn. Sau đây là một cách để sắp xếp dữ liệu—chúng tôi sẽ sử dụng cách này làm ví dụ để hướng tới

python parse_excel.py
4

Nếu bạn đang xem dữ liệu trong Excel, một số trong những số này có thể bị tắt. Điều này là do Excel thường sẽ làm tròn số. Chúng tôi đang hiển thị các số bạn sẽ tìm thấy khi sử dụng Python để phân tích các ô

Mẹo

Lập kế hoạch bạn muốn kết quả trông như thế nào và viết một ví dụ về dữ liệu của bạn sẽ giúp bạn tiết kiệm thời gian khi bắt đầu viết mã. Khi bạn đã xác định được cách bạn muốn định dạng dữ liệu của mình, bạn có thể tự hỏi: “Tôi cần làm gì tiếp theo để đạt được điều đó?”â Điều này đặc biệt hữu ích khi bạn cảm thấy bị chặn ở bước tiếp theo

Có hai cấu trúc Python mà chúng ta sẽ sử dụng để lấy dữ liệu ra. Phương pháp đầu tiên chúng ta sẽ sử dụng là một vòng lặp

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 lồng nhau, là một vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 bên trong một vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 khác. Điều này thường được sử dụng khi bạn có x hàng chứa y đối tượng. Để truy cập từng đối tượng, bạn cần một vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 cho mỗi hàng, sau đó một vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 khác cho mỗi đối tượng. Chúng tôi cũng đã sử dụng vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 lồng nhau trong một ví dụ ở

Chúng ta sẽ sử dụng vòng lặp

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 lồng nhau để xuất từng ô từ mỗi hàng. Thao tác này sẽ xuất các mục mà chúng ta đã thấy trước đó, trong đó mỗi hàng được liệt kê

python parse_excel.py
5

Lấy danh sách là mỗi hàng và lưu nó vào biến

sheet = book.sheet_by_name('Table 9 ')
0. Điều này làm cho mã của chúng tôi dễ đọc hơn

Lặp lại từng mục trong danh sách, đại diện cho từng ô cho hàng hiện tại

Xuất giá trị ô

Nếu bạn chạy mã hoàn chỉnh của mình với vòng lặp

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 lồng nhau, bạn sẽ nhận thấy đầu ra của mình không còn hữu ích nữa. Điều đó đưa chúng ta đến cơ chế thứ hai để khám phá tệp Excel của chúng tamột bộ đếm

Hãy thêm một bộ đếm vào mã của chúng ta để chúng ta có thể duyệt qua các ô và hàng để tìm những gì chúng ta muốn lấy ra. Hãy cẩn thận nơi bạn đặt bộ đếm—bạn sẽ có kết quả rất khác nếu bạn đặt nó ở cấp độ ô so với cấp độ hàng

Đặt lại vòng lặp

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 của bạn để trông giống như mã được hiển thị ở đây

python parse_excel.py
6

Kết quả đầu ra

xlrd.biffh.XLRDError: No sheet named <'Table 9'>
3 và hàng để chúng tôi thực sự có thể xem số hàng nào có thông tin nào

Bây giờ, nếu chúng ta quay lại những gì chúng ta muốn đầu ra cuối cùng của mình trông như thế nào, điều chúng ta thực sự cần tìm ra là tên quốc gia bắt đầu từ đâu. Hãy nhớ rằng, tên quốc gia là khóa đầu tiên của từ điển đầu ra của chúng tôi

python parse_excel.py
7

Nếu bạn chạy tập lệnh của mình với bộ đếm ở vị trí

sheet = book.sheet_by_name('Table 9 ')
4, bạn sẽ thấy từ đầu ra rằng chúng tôi chưa đến hàng nơi tên quốc gia bắt đầu

Bởi vì chúng tôi đang bỏ qua một vài dòng để đến dữ liệu mà chúng tôi quan tâm, nên chúng tôi đang tìm cách xác định số hàng nào chúng tôi sẽ cần để bắt đầu thu thập dữ liệu của mình. Từ lần thử trước, chúng tôi biết tên quốc gia bắt đầu từ hàng 10. Nhưng làm thế nào chúng ta có thể biết bắt đầu từ đâu?

Câu trả lời nằm trong ví dụ mã tiếp theo, nhưng trước khi xem, hãy thử cập nhật bộ đếm để bắt đầu ở hàng bắt đầu tên quốc gia. (Có nhiều cách để thực hiện việc này, vì vậy nếu câu trả lời của bạn hơi khác so với những gì chúng tôi có trong ví dụ mã sau, thì không sao cả. )

Sau khi bạn xác định đúng số hàng, bạn sẽ cần thêm một câu lệnh

sheet = book.sheet_by_name('Table 9 ')
5 để bắt đầu lấy ra các giá trị sau hàng đó. Điều này là để chúng tôi chỉ làm việc với dữ liệu bên dưới dòng đó

Nếu bạn có thể làm cho nó hoạt động, mã của bạn sẽ giống như thế này

python parse_excel.py
8

Dòng này sẽ lặp qua 20 hàng đầu tiên để xác định tên quốc gia bắt đầu từ hàng nào

Câu lệnh

sheet = book.sheet_by_name('Table 9 ')
5 này bắt đầu đầu ra tại điểm xuất hiện các hàng quốc gia

Tại thời điểm này, bạn sẽ có đầu ra trông như thế này

python parse_excel.py
9

Bây giờ, chúng ta cần biến từng hàng thành định dạng từ điển của mình. Điều này sẽ làm cho dữ liệu có ý nghĩa hơn đối với chúng tôi khi chúng tôi cố gắng làm những việc khác với nó trong các chương sau

Nhìn lại ví dụ trước đây của chúng tôi về cách chúng tôi muốn đầu ra của mình được tổ chức, chúng tôi sẽ cần một từ điển và chúng tôi sẽ sử dụng các quốc gia làm khóa. Để lấy ra tên quốc gia, chúng tôi sẽ cần thực hiện một số thao tác lập chỉ mục

Hãy thêm một từ điển vào mã của chúng ta, sau đó lấy tên quốc gia ra khỏi mỗi hàng và thêm nó làm khóa cho từ điển của chúng ta

Cập nhật vòng lặp

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 của bạn để phản ánh điều này

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
0

Điều này tạo ra một từ điển trống để lưu trữ dữ liệu của chúng tôi

sheet = book.sheet_by_name('Table 9 ')
8 kéo quốc gia ra khỏi mỗi hàng mà chúng tôi lặp lại

sheet = book.sheet_by_name('Table 9 ')
9 thêm quốc gia làm chìa khóa cho từ điển
0. Chúng tôi đặt giá trị cho một từ điển khác, vì đó là nơi chúng tôi sẽ lưu trữ dữ liệu của mình trong các bước sau

Điều này xuất dữ liệu, vì vậy chúng ta có thể thấy nó trông như thế nào

Tại thời điểm này, đầu ra của bạn sẽ trông giống như thế này

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
1

Bây giờ, chúng ta cần khớp từng giá trị trong phần còn lại của hàng với các giá trị phù hợp trong bảng tính, sau đó lưu trữ chúng trong từ điển của chúng ta

Ghi chú

Khi bạn cố gắng rút ra tất cả các giá trị và đối chiếu chúng với trang tính Excel của mình, bạn sẽ mắc rất nhiều lỗi. Đó là tốt và mong đợi. Quá trình này nên được chấp nhận—điều đó có nghĩa là bạn đang giải quyết vấn đề theo cách của mình

Trước tiên, hãy tạo một phiên bản trống của cấu trúc dữ liệu nơi chúng tôi có thể lưu trữ dữ liệu của mình. Hãy cũng loại bỏ bộ đếm của chúng ta, vì chúng ta biết rằng các hàng dữ liệu bắt đầu từ dòng 14. Bởi vì chúng tôi biết

1 có thể chấp nhận điểm bắt đầu và điểm kết thúc, chúng tôi có thể bắt đầu đếm từ 14 và kết thúc ở cuối tệp. Hãy xem mã được cập nhật của chúng tôi

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
2

Chúng tôi có thể xóa tất cả các tham chiếu của chúng tôi đến bộ đếm và chỉ cần bắt đầu vòng lặp

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 của chúng tôi bắt đầu từ hàng thứ 14 của trang tính của chúng tôi. Dòng này bắt đầu vòng lặp với giá trị 14, vì vậy chúng tôi tự động bỏ qua các dòng chúng tôi không cần cho tập dữ liệu của mình

Dòng này mở rộng từ điển thành nhiều dòng để điền vào các điểm dữ liệu khác

Thao tác này tạo khóa

3 và đặt nó bằng một từ điển khác

Từ điển có các chuỗi để giải thích từng phần dữ liệu mà nó chứa. Đối với mỗi khóa này, các giá trị là danh sách

Điều này xuất ra các giá trị được liên kết với khóa

4

Dữ liệu đầu ra của chúng tôi cho

4 trông như thế này

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
3

Bây giờ chúng ta hãy điền dữ liệu. Vì chúng tôi có quyền truy cập vào từng cột của từng hàng bằng cách sử dụng chỉ mục, nên chúng tôi có thể điền vào các danh sách này các giá trị từ trang tính. Bằng cách xem trang tính của chúng tôi và sắp xếp các cột liên quan đến phần nào của dữ liệu, chúng tôi có thể cập nhật từ điển dữ liệu để phản ánh những điều sau

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
4

Vì có hai ô cho mỗi cột nên mã của chúng tôi lưu trữ cả hai giá trị. Bởi vì trong dòng này, tổng số lao động trẻ em của chúng tôi là cột thứ năm và thứ sáu và chúng tôi biết Python không được lập chỉ mục, nên chúng tôi muốn có chỉ mục thứ tư và thứ năm

Khi chúng tôi chạy lại mã của mình, chúng tôi nhận được kết quả như thế này

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
5

Cảnh báo

Trước khi bạn tiếp tục, hãy xuất một vài bản ghi và kiểm tra số trong từ điển. Thật dễ dàng để kết thúc một chỉ mục và làm hỏng phần còn lại của dữ liệu của bạn

Cuối cùng, để xem trước dữ liệu của chúng tôi, chúng tôi có thể sử dụng

6 thay vì câu lệnh 
7. Trong các cấu trúc dữ liệu phức tạp (như từ điển), điều này giúp xem lại đầu ra dễ dàng hơn rất nhiều. Thêm phần sau vào cuối tệp của bạn để xem trước dữ liệu theo kiểu đã định dạng

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
6

Nhập thư viện

6. Thông thường, các câu lệnh 
9 xuất hiện ở đầu tệp, nhưng chúng tôi đặt nó ở đây để đơn giản. Sau khi hoàn tất, bạn sẽ muốn xóa những dòng này vì chúng không quan trọng đối với tập lệnh của bạn

Truyền dữ liệu cho hàm

print dir(sheet)
0

Nếu bạn cuộn qua đầu ra của mình, bạn sẽ nhận thấy phần lớn nội dung đó có vẻ tốt. Nhưng có một vài bản ghi có vẻ không đúng chỗ

Các bạn nhìn vào bảng tính lưu ý hàng cuối cùng của các quốc gia là Zimbabwe. Vì vậy, chúng tôi muốn tìm thời điểm quốc gia bằng với

print dir(sheet)
1 và thoát khỏi đó. Để thoát, chúng tôi thêm một
print dir(sheet)
2 vào mã của mình, đó là cách chúng tôi ngắt sớm vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 để tiếp tục với phần còn lại của tập lệnh. Hãy thêm điều đó làm điểm dừng của chúng ta. Ở cuối vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6, hãy thêm đoạn mã sau và chạy lại mã của bạn

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
7

Nếu đất nước ngang bằng với Zimbabweâ¦

Thoát khỏi vòng lặp

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6

Cảnh báo

Sau khi thêm

print dir(sheet)
2, bạn có gặp phải lỗi
print dir(sheet)
7 không? . Câu lệnh
sheet = book.sheet_by_name('Table 9 ')
5 phải được thụt vào bốn khoảng trắng để nằm trong vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6

Bước qua mã có thể hữu ích trong việc xác định một vấn đề. Nếu bạn cần khắc phục sự cố để tìm ra biến nào, chẳng hạn như

python parse_excel.py
00, bằng trong vòng lặp
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6, hãy thử thêm các câu lệnh
7 bên trong vòng lặp 
import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9')

print sheet
6 và xem các giá trị trước khi tập lệnh của bạn thoát ra với lỗi. Họ có thể sẽ cho bạn một gợi ý về những gì đang xảy ra

Tại thời điểm này, đầu ra của tập lệnh của chúng tôi phù hợp với mục tiêu cuối cùng của chúng tôi. Điều cuối cùng chúng tôi muốn làm với tập lệnh của mình là đảm bảo rằng chúng tôi ghi lại nó bằng một số nhận xét

Kịch bản của bạn bây giờ trông giống như thế này

import xlrd

book = xlrd.open_workbook('SOWC 2014 Stat Tables_Table 9.xlsx')
8

Đây là một nhận xét nhiều dòng được sử dụng để mô tả chung những gì đang diễn ra trong tập lệnh này

Đây là nhận xét một dòng để ghi lại lý do tại sao chúng tôi bắt đầu ở dòng 14 chứ không phải sớm hơn

Chúng ta có thể và nên xóa những dòng này khi chúng ta chuyển từ phân tích cú pháp dữ liệu đơn giản sang phân tích dữ liệu

Tại thời điểm này, chúng tôi có một đầu ra tương tự như dữ liệu của chương trước. Trong chương tiếp theo, chúng ta sẽ tiến thêm một bước nữa và phân tích cú pháp cùng một dữ liệu từ PDF