我正在尝试在python3(Mac OS X)和tkinter中创建一个程序。它需要一个增量id,datetime.now和第三个字符串作为变量。例如,
打开一个窗口,显示: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()
文件中的结果是
{
"testStyle": "blabla",
"testId": "8",
"testDate": "2013-05-09 13:32"
}{
"testDate": "2013-05-09 13:41",
"testId": "9",
"testStyle": "blabla"
}
作为一个python新手,我想加载文件数据并进行一些检查,例如“如果用户在2013-05-09再次输入,则会显示一条消息,说明您已经输入了今天的数据”。加载所有这些json数据的正确方法是什么?该列表将每天扩展并包含大量数据。
答案 0 :(得分:1)
您可以存储一个字典列表,而不是直接存储字典,这些字典可以加载回列表中,该列表可以修改并附加到
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)
答案 1 :(得分:1)
您只需加载文件并解析它:
with open(path, mode="r", encoding="utf-8") as myfile:
data = json.loads(myfile.read())
现在你可以随心所欲地使用data
。
如果您的文件非常大,那么我认为您应该使用正确的数据库。