【发布时间】:2021-08-05 11:10:29
【问题描述】:
我有一个用 argparse 模块用 python 编写的简单 CLI 应用程序。基本上我正在使用外部 api 获取一些加密货币数据,我将其转换为 pandas 数据框并使用制表模块打印它。但是我在终端中打印表格时遇到问题。当我这样做时,一切都出错了,表格没有保持正确的结构,最后看起来就像下面的屏幕一样。
这里是 sn-p,用于使用表格打印 pandas 数据框
# file: example.py
import requests
from tabulate import tabulate
def get_recommendations():
url = "https://min-api.cryptocompare.com/data/recommended/all"
req = requests.get(url, params={'fsym' : 'BTC' ,"tsym": 'USD'})
return pd.DataFrame(req.json()['Data']['exchanges']).T
df = get_recommendations()
print(
tabulate(
df,
headers=df.columns,
floatfmt=".5f",
showindex=True,
tablefmt="psql",
)
)
如果你在终端运行
python example.py 你会在终端看到一团糟,就像上面代码 sn-p 的截图一样。
【问题讨论】:
-
看起来表格比你的终端宽,你有数据的示例 sn-p 来使它成为minimal reproducible example吗?
-
试试termtables,这是一个轻量级的 Python 3 包,用于在命令行上漂亮地打印表格
-
@Alex 我添加了完整的示例。希望重新创建它就足够了。
-
@Pluviophile 我会尝试使用这个包,但我认为也许可以为终端添加一些约束以正确显示所有内容,即使表格的大小比终端窗口大。跨度>
标签: python dataframe terminal argparse tabulate