首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用json_normalize从opentsdb导入时间序列

使用json_normalize从opentsdb导入时间序列
EN

Stack Overflow用户
提问于 2019-08-13 02:23:50
回答 1查看 75关注 0票数 0

正在尝试使用json_normalize从OpenTSDB导入数据。不知怎么的,它适用于大多数字段,除了每个时间戳的值。

我试着改变不同的设置,甚至在时间序列结束时的.T,我在这里的某个地方得到。尽管如此,这并没有帮助。

代码语言:javascript
复制
import pandas as pd
from pandas.io.json import json_normalize

data = {
    "metric": "peer.traffic.in",
    "tags": {"site": "site1", "peer": "peer1"},
    "aggregateTags": [],
    "dps": {"1561953835": 19565.66015625, "1561954125": 19012.55078125, "1561954439": 17274.669921875, "1561954728": 19151.75, "1561955039": 17603.23046875, "1561955329": 17056.1796875, "1561955641": 16232.349609375, "1561955928": 17016.48046875, "1561956241": 16023.0498046875, "1561956533": 15529.1298828125, "1561956847": 14976.080078125, "1561957126": 14557.6796875}
}

df = json_normalize(data, record_path=['dps'], meta=['metric',['tags','site'],['tags','peer']])
print (df)

输出:

代码语言:javascript
复制
             0           metric tags:site tags:peer
0   1561953835  peer.traffic.in     site1     peer1
1   1561954125  peer.traffic.in     site1     peer1
2   1561954439  peer.traffic.in     site1     peer1
3   1561954728  peer.traffic.in     site1     peer1
4   1561955039  peer.traffic.in     site1     peer1
5   1561955329  peer.traffic.in     site1     peer1
6   1561955641  peer.traffic.in     site1     peer1
7   1561955928  peer.traffic.in     site1     peer1
8   1561956241  peer.traffic.in     site1     peer1
9   1561956533  peer.traffic.in     site1     peer1
10  1561956847  peer.traffic.in     site1     peer1
11  1561957126  peer.traffic.in     site1     peer1

我希望在dps表的表中看到要显示的值。

EN

回答 1

Stack Overflow用户

发布于 2019-08-13 16:39:26

根据json_normalize的说法,record_path不能将字典作为输入处理。您需要提供适当的数据格式:

代码语言:javascript
复制
import pandas as pd
from pandas.io.json import json_normalize

data = {
    "metric": "peer.traffic.in",
    "tags": {"site": "site1", "peer": "peer1"},
    "aggregateTags": [],
    "dps": {"1561953835": 19565.66015625, "1561954125": 19012.55078125, "1561954439": 17274.669921875, "1561954728": 19151.75, "1561955039": 17603.23046875, "1561955329": 17056.1796875, "1561955641": 16232.349609375, "1561955928": 17016.48046875, "1561956241": 16023.0498046875, "1561956533": 15529.1298828125, "1561956847": 14976.080078125, "1561957126": 14557.6796875}
}

# convert dict values into list
data['dps'] = [str(i) for i in list(data.get('dps').values())]


df = json_normalize(data=data, record_path='dps', meta=['metric',['tags','site'],['tags','peer']])

输出:

代码语言:javascript
复制
                   0           metric tags.site tags.peer
0     19565.66015625  peer.traffic.in     site1     peer1
1     19012.55078125  peer.traffic.in     site1     peer1
2    17274.669921875  peer.traffic.in     site1     peer1
3           19151.75  peer.traffic.in     site1     peer1
4     17603.23046875  peer.traffic.in     site1     peer1
5      17056.1796875  peer.traffic.in     site1     peer1
6    16232.349609375  peer.traffic.in     site1     peer1
7     17016.48046875  peer.traffic.in     site1     peer1
8   16023.0498046875  peer.traffic.in     site1     peer1
9   15529.1298828125  peer.traffic.in     site1     peer1
10   14976.080078125  peer.traffic.in     site1     peer1
11     14557.6796875  peer.traffic.in     site1     peer1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57466352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档