我从json文件读取信息时遇到问题

时间:2019-06-13 21:01:07

标签: python json pandas

我将汽车计算机中的数据保存到json文件中。 (例如,引擎每分钟转数。) 我的文件json看起来像这样:

{"Clock": "17:37:42", "Value": 801.0}
{"Clock": "17:37:43", "Value": 791.0}
{"Clock": "17:37:45", "Value": 766.0}
{"Clock": "17:37:46", "Value": 788.0}
{"Clock": "17:37:47", "Value": 792.0}
....

我必须阅读此信息并将其放在图表中。 你能帮我吗?我将非常感激。

我在特定的库中使用python语言:tkinter,matplotlib等

我的代码部分如下:

def animate(i):
    data=[]
    with open('rpm.json') as f:
        data=json.dumps(f)

    data = pb.DataFrame(data)

    clock=data[(data['Ora']=='%H:%M:%S')]
    clock["datestamp"]=np.array(clock['%H:%M:%S']).astype("datetime64[s]")
    dateClock=(clock["datesteam"]).tolist()

    value = data[(data['Value'] == rpm.value.magnitude)]
    value["datestamp"] = np.array(value[rpm.value.magnitude]).astype("datetime64[s]")
    datevValue = (value["datesteam"]).tolist()

    a.clear()
    a.plot_date(dateClock, clock["Clock"])
    a.plot_date(dateValue, value["Value"])

1 个答案:

答案 0 :(得分:0)

正如@Josh Gordon在评论中指出的那样,您没有有效的json文件。一种解决方案是通过将以下各格括起来来修复格式。

res.status(400).send('Bad request')

另一种选择是逐个解析字典。如果最后需要熊猫数据框,则可以使用{"data":[ {"Clock": "17:37:42", "Value": 801.0}, {"Clock": "17:37:43", "Value": 791.0}, {"Clock": "17:37:45", "Value": 766.0}, {"Clock": "17:37:46", "Value": 788.0}, {"Clock": "17:37:47", "Value": 792.0} ]} 模块中的literal_eval函数来读取每一行。

ast

您应该获得一个如下所示的数据框,从那里可以轻松绘制图形。

import ast

data = pd.DataFrame()
f = open('rpm.json')
for line in f:
    data = data.append(ast.literal_eval(line), ignore_index=True)
f.close()