将python输出转换为frameter

2024-06-08 09:28:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python和openstack ceilometer有点陌生。我正在使用以下代码读取云高计数据:

import ceilometerclient.client

cclient = ceilometerclient.client.get_client(2, os_username="Ceilometeradmin", os_password="blahblah", os_tenant_name="blahblah", os_auth_url="http://xxx.xx.xx.x:5000/v2.0")

query = [dict(field='resource_id', op='eq', value='dd893564-85e5-43f8-a384-086417f1d82c')]

ls = cclient.meters.list(q=query)

(见附件输出图片)

enter image description here

有人知道我怎么把它转换成数据帧吗?在

我试过了:ls2 = pandas.DataFrame(ls, columns=["user_id", "name", "resource_id", "source", "meter_id", "project_id", "type", "unit"])

但得到以下错误:

^{pr2}$

如果有人能帮忙的话,我将不胜感激。。在

谢谢你

致以最良好的祝愿 T


Tags: 数据nameclientidopenstackosqueryls
2条回答

在一位同事的帮助下,我们设法找到了解决办法。 我把它贴出来,以防有人试图把云图数据转换成数据帧。在

ls2 = str(ls)[8:-2]
tmp = ls2.replace("u'","'")
tmp = tmp.replace("<Meter","")
tmp = tmp.replace("}>","}")
tmp= "["+tmp+"]"
tmp = tmp.replace("'", "\"")
parsed = json.loads(tmp)
ls3 = pandas.DataFrame(parsed)

替换使其成为无效字典的字符并转换为数据帧

meters = c.meters.list()
fields = ['user_id', 'name', 'resource_id', 'source', 'meter_id', 'project_id', 'type', 'unit']
converted_meters = [dict([(key, getattr(m, key, None))]) for m in meters for key in fields]
data_frame = pandas.DataFrame(converted_meters)

相关问题 更多 >