我在从json fi读取信息时遇到问题

2024-09-30 01:27:02 发布

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

我把汽车电脑里的数据保存到一个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"])

Tags: 文件jsondatavaluenparrayrpmclock
1条回答
网友
1楼 · 发布于 2024-09-30 01:27:02

正如@Josh Gordon在评论中指出的那样,您没有有效的json文件。一种解决方案是通过如下方式封装dict来修复格式。你知道吗

{"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}
]}

另一种选择是逐个解析字典。如果您希望最后有一个pandas数据帧,可以使用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()

你应该得到一个数据帧如下,从那里它应该很容易绘制图形。你知道吗

In [1]: data
Out[1]: 
   Clock     Value
0  17:37:42  801.0
1  17:37:43  791.0
2  17:37:45  766.0
3  17:37:46  788.0
4  17:37:47  792.0

相关问题 更多 >

    热门问题