如何在使用prettytable时获取单元格的值
使用prettytable时,能否获取特定单元格的值?
我有以下代码,用来遍历一个简单表格的所有行。
from prettytable import PrettyTable
table = PrettyTable(["Column 1", "Column 2", "Column 3"])
table.add_row(["A", "B", "C"])
table.add_row(["F", "O", "O"])
table.add_row(["B", "A", "R"])
for row in table:
print(row)
这个例子会打印出以下三个表格:
+----------+----------+----------+
| Column 1 | Column 2 | Column 3 |
+----------+----------+----------+
| A | B | C |
+----------+----------+----------+
+----------+----------+----------+
| Column 1 | Column 2 | Column 3 |
+----------+----------+----------+
| F | O | O |
+----------+----------+----------+
+----------+----------+----------+
| Column 1 | Column 2 | Column 3 |
+----------+----------+----------+
| B | A | R |
+----------+----------+----------+
那么,如何才能只获取某一行的第一列
、第二列
或第三列
的值呢?
3 个回答
-1
你可以使用 rows 方法来获取原始数据。
table.rows[0][0] # ="A"
0
在新版的prettytable中,你可以使用json/svc获取数据:
In [13]: json.loads(table.get_json_string())[1]['Column 1']
Out[13]: 'A'
或者
In [17]: table.get_csv_string(header=False).split(',')[0]
Out[17]: 'A'
在旧版中
In [28]: table[-1].get_string(header=False, fields=['Column 1']).split('|')[1].strip()
Out[28]: 'A'
8
看起来你想要从数据中获取一部分内容。你可以参考这里的文档,试试下面的代码:
from prettytable import PrettyTable
table = PrettyTable(["Column 1", "Column 2", "Column 3"])
table.add_row(["A", "B", "C"])
table.add_row(["F", "O", "O"])
table.add_row(["B", "A", "R"])
for row in table:
print row.get_string(fields=["Column 1"]) # Column 1
补充一下:如果你只想要值,不需要表头或边框的话,下面的代码应该可以满足你的需求:
from prettytable import PrettyTable
table = PrettyTable(["Column 1", "Column 2", "Column 3"])
table.add_row(["A", "B", "C"])
table.add_row(["F", "O", "O"])
table.add_row(["B", "A", "R"])
for row in table:
row.border = False
row.header = False
print row.get_string(fields=["Column 1"]).strip() # Column 1