如何在Python中将json文件解析为数据帧

如何在Python中将json文件解析为数据帧,python,json,pandas,Python,Json,Pandas,我有一些手机加速计数据的json数据。看起来是这样的: {u'timestamps': {u'1524771017235': [[u'x', u'y', u'z', u'rotationX', u'rot

我有一些手机加速计数据的json数据。看起来是这样的:

{u'timestamps': {u'1524771017235': [[u'x',
                                     u'y',
                                     u'z',
                                     u'rotationX',
                                     u'rotationY',
                                     u'rotationZ'],
                                    [-0.02, 0, 0.04, 102.65, 68.15, 108.61],
                                    [-0.03, 0.02, 0.02, 102.63, 68.2, 108.5],
                                    [-0.05, 0.01, 0.1, 102.6, 68.25, 108.4],
                                    [-0.02, 0, 0.09, 102.6, 68.25, 108.4],
                                    [-0.01, 0, 0.03, 102.6, 68.25, 108.4]]}}
我想要的是有一个数据框,其中包含数据名称的列(x,y,z rotationX,rotationY,rotationZ)和每个数据条目的行。时间戳信息可以存储在别处

当我使用d=pd.read_json('data.json')时,我得到的是:

timestamps
2018-04-26 19:30:17.235 [[x, y, z, rotationX, rotationY, rotationZ], [...
它似乎以时间戳作为索引。把剩下的都放在一个牢房里

我对json没有太多的经验,因此pandas.read_json api的使用没有太多意义。请帮忙


我目前的解决方法是手动跳过前两个词典。并创建一个以第一列为标题的df。这是可行的,但实际上并不理想

dataDf = pd.DataFrame(data = d['timestamps']['1524771017235'][1:], columns = d['timestamps']['1524771017235'][0])

x   y   z   rotationX   rotationY   rotationZ
0   -0.02   0.00    0.04    102.65  68.15   108.61
1   -0.03   0.02    0.02    102.63  68.20   108.50
2   -0.05   0.01    0.10    102.60  68.25   108.40

谢谢

您需要的是访问字典的键{u'1524771017235':[[u'x',…是与json文件关联的字典
d
的键时间戳关联的值。然后尝试:

d['timestamps'].keys()[0]
它应该返回您的
'1524771017235'
值,因此要创建
数据DF
,只需执行以下操作:

dataDf = pd.DataFrame(data = d['timestamps'][d['timestamps'].keys()[0]][1:], 
                      columns = d['timestamps'][d['timestamps'].keys()[0]][0])

你也会得到同样的结果。

@cmaher,我用代码替换了图像。谢谢“它工作正常,但确实不理想…”为什么不呢?看起来不错。@AmiTavory,因为时间信息(本例中为1524771017235)每个文件都不一样。按照我的方式,我必须为每个文件手动选择。非常感谢。钥匙正是我需要的。