python - 将云高仪输出转换为 python 数据帧

标签 python json pandas openstack ceilometer

我对 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 "])

但出现以下错误:

Traceback (most recent call last):
File "", line 1, in File "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", line 250, in init copy=copy)
File "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", line 363, in _init_ndarray return create_block_manager_from_blocks([values.T], [columns, index])
File "/usr/lib/python2.7/dist-packages/pandas/core/internals.py", line 3750, in create_block_manager_from_blocks construction_error(tot_items, blocks[0].shape[1:], axes, e)
File "/usr/lib/python2.7/dist-packages/pandas/core/internals.py", line 3732, in construction_error passed,implied))
ValueError: Shape of passed values is (1, 2), indices imply (8, 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)

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

关于python - 将云高仪输出转换为 python 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33420300/

相关文章:

javascript - 获取所有 key :Values from Chrome Storage

python - datetime 如何理解第 53 周?

python - Python 中 sqlite3 的交集

python - 如何在opencv python中更改图像照明

python - 有没有办法在每一行中打印一个字典的键和值?

java - 如何将带有对象和数组索引的字符串转换为 json

python - 随机森林多类 : what is shap_values[i]? 的 SHAP TreeExplainer

C# 网络服务 : Throw exception with extra properties in JSON

python - 尝试使用 Pandas 计算百分比并添加新列

python - Pandas:使用一个公共(public)列合并多个 DataFrame