如何从序列化文件中加载json数据并在Python3中进行处理?

2024-05-15 01:52:51 发布

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

我正在尝试用python3(macosx)和tkinter创建一个程序。它需要一个增量id日期时间。现在第三个字符串作为变量。例如

打开一个窗口,显示:id/date-time/“hello world”。用户做出选择并按下保存按钮。输入被序列化为json并保存在一个文件中。在

mytest = dict([('testId',testId), ('testDate',testDate), ('testStyle',testStyle)])
with open('data/test.txt', mode = 'a', encoding = 'utf-8') as myfile:
     json.dump(mytest, myfile, indent = 2)
myfile.close()

文件中的结果是

^{2}$

作为一个python新手,我想加载文件数据并进行一些检查,比如“如果用户在2013-05-09再次输入了一个条目,则显示一条消息,说明您已经输入了今天的数据。”加载所有这些json数据的正确方法是什么?这个列表每天都会扩展并包含大量数据。在


Tags: 文件数据用户程序idjsontkintermyfile
2条回答

您只需加载文件并对其进行解析:

with open(path, mode="r", encoding="utf-8") as myfile:
    data = json.loads(myfile.read())

现在您可以使用data执行任何操作。在

如果你的文件真的很大,那么我想你应该使用一个合适的数据库。在

与直接存储字典不同,您可以存储一个字典列表,该列表可以重新加载到一个可以修改和附加到的列表中

import json
mytest1 = dict([('testId','testId1'), ('testDate','testDate1'), ('testStyle','testStyle1')])
json_values = []
json_values.append(mytest1)
s = json.dumps(json_values)
print(s)
json_values = None
mytest2 = dict([('testId','testId2'), ('testDate','testDate2'), ('testStyle','testStyle2')])
json_values = json.loads(s)
json_values.append(mytest2)
s = json.dumps(json_values)
print(s)

相关问题 更多 >

    热门问题