【发布时间】:2020-01-13 00:37:48
【问题描述】:
您好,抱歉,这似乎是一个非常糟糕的问题,但是每当我在 python 中创建一个 json txt 文件并写入它时,它只会暂时保存。例如,我有一个 for 循环在用户想要的次数内将文本写入文件。我知道它会执行多次,因为每次执行它时我都有一个计数功能来打印,但是正在写入的文本文件只保存一个循环。所以说我想打印每次循环的数字,我可能会要求它运行 4 次,应该打印的数字是 0、1、2、3,我看到的唯一数字打印到文件中结尾是 3,因为我一直在写我的数据。这是我的代码,因此有人可以帮助我,并且像往常一样非常感谢任何和所有帮助。
def create_tasks():
num_tasks = int(num_tasks_entry.get())
global size
num = 0
for num in range(0, num_tasks):
data = {}
data['task'] = []
data['task'].append({
'profile': profiles_select.get(),
'task_id': num,
'product_link': productlink_entry.get(),
'delay': int(delay_entry.get()),
})
num = num + 1
with open('tasks.txt', 'w', encoding='utf-8') as outfile:
json.dump(data, outfile, indent=2)
另一个例子,在我的代码中,我希望输出文件是打印用户选择次数的信息。
【问题讨论】:
-
您在每次循环迭代中都覆盖了同一个文件。
-
@AMC 是的,我怎么能不那样做?
-
在循环之前只创建一次空的
data- 在for-loop 之后只写一次(不在for-loop 内)。在 JSON 中,您不能编写许多单独的字典,因为这将是不正确的 JSON 数据 - 您必须将所有字典编写为一个字典。或者作为一个包含许多字典的列表。 -
顺便说一句,尽量避免使用全局变量。