Python 如何使json数据以表格格式显示在每台机器上?
我有一个机器列表,我迭代每台机器,为它们创建自定义url,然后执行它来获取它们的Python 如何使json数据以表格格式显示在每台机器上?,python,Python,我有一个机器列表,我迭代每台机器,为它们创建自定义url,然后执行它来获取它们的JSON数据JSON每台机器的数据如下所示: [{'latestFile': 'abc.tar', 'activeFile': 'yuqq.tar', 'error': 'some-error-1', 'timestamp': 1234558964}] 现在我需要在控制台上为我的每台机器制作这样的表格数据,当我打印它们的IP地址时。如何在Python中实现这一点 Machine Latest File
JSON
数据<代码>JSON每台机器的数据如下所示:
[{'latestFile': 'abc.tar', 'activeFile': 'yuqq.tar', 'error': 'some-error-1', 'timestamp': 1234558964}]
现在我需要在控制台上为我的每台机器制作这样的表格数据,当我打印它们的IP地址时。如何在Python中实现这一点
Machine Latest File Active File Error Timestamp
------ -------------- ---------------- ---------- --------------
1.2.3.4 abc.tar yuqq.tar some-error-1 1234558964
2.1.4.7 def.tar mkj.tar some-error-2 1234558964
3.2.3.9 ghi.tar ysq.tar some-error-3 1234558964
7.3.8.6 pqe.tar prq.tar some-error-4 1234558964
在每台机器中,某些字段可能不是它们的JSON。那样的话,我可以把那列留给那台机器
下面是我的代码,我迭代每台机器,并在messages
变量中为每台机器附加JSON响应,但我不确定如何获得每台机器的上述表格格式的数据。这有可能吗
total_machines = len(machines)
messages = []
for machine in machines:
try:
ip = machine['ip_address']
with session.get(
make_url(env=env, profile=profile, ip=ip)
) as response:
response.raise_for_status()
machine_json_value = response.json()
messages.append(machine_json_value)
except Exception as e:
messages.append(str(e))
# how do I make tabular format report for each machine?
基本上,我只想在控制台上对所有机器的输出进行表格格式的格式化。只要格式正确且易于阅读,任何输出都是正常的。您可以使用pandas软件包转换为dataframe,然后使用print(df)以表格结构打印数据:
In [1]: import pandas as pd
In [2]: dict1= [{'latestFile': 'abc.tar', 'activeFile': 'yuqq.tar', 'error': 'so
...: me-error-1', 'timestamp': 1234558964}]
In [3]: df = pd.DataFrame(dict1)
In [5]: print(df)
latestFile activeFile error timestamp
0 abc.tar yuqq.tar some-error-1 1234558964
如果不想打印索引,则:
In [6]: print(df.to_string(index=False))
latestFile activeFile error timestamp
abc.tar yuqq.tar some-error-1 1234558964
当您将所有json值存储在messages
变量中时。您可以将消息传递到pd.DataFrame()
以生成数据帧
存储异常错误时需要做的一个更改是另一个变量。我想把它格式化得很好,就像我在上面的问题中所做的一样。我们能用这种方法做到这一点吗?我也有很多机器,我需要为所有的机器做这些。如果我们对所有机器都使用这种方法,我怎么能只显示一次列?你还在吗?如果json的结构相同,你可以创建一个字典列表,首先列出所有机器的详细信息,然后使用
pd.DataFrame()
创建一个DataFrame。在这种情况下,您的列将只显示一次。如果可能的话,您能否提供一个示例?我从来没有用过熊猫,所以对它的工作原理有点困惑。