Python的BeautifulTable修改输出
Python's BeautifulTable modifies output
我正在从 dict 构建一个 BeautifulTable table,它的键是字符串数字集(例如“21608”、“32099”、“02978”)。字典的键将成为我的 table:
的第一列
for (key, value) in stations.items():
table.rows.append([key] + value) # 'value' is a list, so here I just concatenate [key] and [value1, ..., valueN] to form new list [key, value1, ..., valueN] to add to the table
当我尝试使用 print(table) 命令打印(到 stdout 或 txt 文件)table 时出现问题。
for (key, value) in stations.items():
table.rows.append([key] + value)
print(table)
问题是:第一列所有以“0”开头的数字组(例如“02978”、“02186”),被修改,以便第一个“0”被剥夺。
输出table
然后我试图在将它们附加到 table:
之后将它们逐行打印出来并列出
for (key, value) in stations.items():
table.rows.append([key] + value)
print(list(table.rows[-1]))
此输出根据需要显示数据,没有去除零:
为什么是这个结果?原因是在BeautifulTabletables的repr()方法中?我不太明白为什么它会在输出过程中以任何方式修改字符串类型。任何想法,我该如何避免它?
It's being converted into an int/float
The current behaviour is that, if a string can be parsed as a float/int, it will be parsed as a float/int
>>> import beautifultable
>>> table = beautifultable.BeautifulTable()
>>> table.append_row(['foo', '012345'])
>>> print(table)
+-----+-------+
| foo | 12345 |
+-----+-------+
您可以使用 detect_numerics=False
来禁用此行为。
>>> table = beautifultable.BeautifulTable(detect_numerics=False)
>>> table.append_row(['foo', '012345'])
>>> print(table)
+-----+--------+
| foo | 012345 |
+-----+--------+
我正在从 dict 构建一个 BeautifulTable table,它的键是字符串数字集(例如“21608”、“32099”、“02978”)。字典的键将成为我的 table:
的第一列for (key, value) in stations.items():
table.rows.append([key] + value) # 'value' is a list, so here I just concatenate [key] and [value1, ..., valueN] to form new list [key, value1, ..., valueN] to add to the table
当我尝试使用 print(table) 命令打印(到 stdout 或 txt 文件)table 时出现问题。
for (key, value) in stations.items():
table.rows.append([key] + value)
print(table)
问题是:第一列所有以“0”开头的数字组(例如“02978”、“02186”),被修改,以便第一个“0”被剥夺。
然后我试图在将它们附加到 table:
之后将它们逐行打印出来并列出for (key, value) in stations.items():
table.rows.append([key] + value)
print(list(table.rows[-1]))
此输出根据需要显示数据,没有去除零:
为什么是这个结果?原因是在BeautifulTabletables的repr()方法中?我不太明白为什么它会在输出过程中以任何方式修改字符串类型。任何想法,我该如何避免它?
It's being converted into an int/float
The current behaviour is that, if a string can be parsed as a float/int, it will be parsed as a float/int
>>> import beautifultable
>>> table = beautifultable.BeautifulTable()
>>> table.append_row(['foo', '012345'])
>>> print(table)
+-----+-------+
| foo | 12345 |
+-----+-------+
您可以使用 detect_numerics=False
来禁用此行为。
>>> table = beautifultable.BeautifulTable(detect_numerics=False)
>>> table.append_row(['foo', '012345'])
>>> print(table)
+-----+--------+
| foo | 012345 |
+-----+--------+