Python 3.x 在data.txt中写入过去的值

Python 3.x 在data.txt中写入过去的值,python-3.x,Python 3.x,我想在data.txt中写一些列表 程序的输出为: Triangle ('(a1, b1)', '(a2, b2)', '(a3, b3)') Triangle ('(a4, b4)', '(a5, b5)', '(a6, b6)') 用这行代码写在data.txt中 data = {} data['shapes'] = [] data['shapes'].append({ 'name': str(triangle.name), 'Vertices': list(triangl

我想在data.txt中写一些列表

程序的输出为:

Triangle
('(a1, b1)', '(a2, b2)', '(a3, b3)')
Triangle
('(a4, b4)', '(a5, b5)', '(a6, b6)')
用这行代码写在data.txt中

data = {}
data['shapes'] = []
data['shapes'].append({
    'name': str(triangle.name),
    'Vertices': list(triangle.get_points())
我需要以我的data.txt格式输出,json格式如下:

{"shapes": [{"name": "Triangle", "Vertices": ["(a1, b1)", "(a2, b2)", "(a3, b3)"]}, {"name": "Triangle", "Vertices": ["(a4, b4)", "(a5, b5)", "(a6, b6)"]}]}
但我得到的是:

{"shapes": [{"name": "Triangle", "Vertices": ["(a4, b4)", "(a5, b5)", "(a6, b6)"]}]}

那么,如何写入具有顶点(a1,b1)…(a3,b3)的三角形的过去值?

在将第一个三角形对象的信息附加到数据['shapes'之前,似乎要用下一个三角形对象覆盖引用第一个三角形对象的变量


添加到数据中的代码块['shapes']应该执行两次,每个三角形对象一次。

这部分代码应该只执行一次:

data = {}
data['shapes'] = []
您应该反复执行代码的以下部分

data['shapes'].append({
    'name': str(triangle.name),
    'Vertices': list(triangle.get_points())
可能在一个类似于这个的循环中

for triangle in triangles:
    data['shapes'].append({
        'name': str(triangle.name),
        'Vertices': list(triangle.get_points())

需要了解您是如何在现有代码中实现这一点的,因为这就是错误所在。我猜
Triangle
中的数据在添加到字典之前会被覆盖,但如果没有代码,我无法判断。您当前的代码只写入最后输出的数据<代码>“Triangle”正在覆盖以前输出的值,这就是为什么您的字典只存储最新的值。谢谢@MarianD,您的回答让我高兴。我将写入data.txt的代码放在同一个循环中,以生成三角形输出。