在JSON obj中的每个循环后面添加“;”

2024-10-01 02:39:56 发布

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

我试图用json在json对象的每个循环之后添加一个。基本上我有一个循环的列表,然后我将其添加为“转换”为json:

i = 1
for _ in range(3):

    data = {}

    data['country'] = 'SE'
    data['profileNickname'] = 'TEST {}'.format(i)
    i += 1

with open("random.json", "w") as writeJSON:
    writeJSON.write(json.dumps(data, indent=2))

然而,输出结果只是一个普通的json:

{
  "country": "SE",
  "profileNickname": "TEST 1",
},
{
  "country": "SE",
  "profileNickname": "TEST 2",
}

我的问题和我想做的是,我想在每个循环后面加上;,这样一个输出看起来像:

{
  "country": "SE",
  "profileNickname": "TEST 1",
};{
  "country": "SE",
  "profileNickname": "TEST 2",
}

我知道这会将它标记为无效的json,但这是我的目标,我的目标是能够在每个循环之后添加;当然除了最后一个循环。你知道吗


Tags: 对象intestjsonformat目标列表for
1条回答
网友
1楼 · 发布于 2024-10-01 02:39:56

不知道你为什么需要它,但这不是问题:)

import json

items = []
for i in range(1, 4):
    items.append({
        'country': 'SE',
        'profileNickname': 'TEST {}'.format(i)
    })

with open("random.json", "w") as writeJSON:
    buffer = ""
    for i, item in enumerate(items):
        buffer += json.dumps(item, indent=2)

        if i != len(items) - 1:
            buffer += ';'

    writeJSON.write(buffer)

写入文件

{
  "country": "SE",
  "profileNickname": "TEST 1"
};{
  "country": "SE",
  "profileNickname": "TEST 2"
};{
  "country": "SE",
  "profileNickname": "TEST 3"
}

再举一个不使用缓冲区字符串的例子

import json

items = []
for i in range(1, 4):
    items.append({
        'country': 'SE',
        'profileNickname': 'TEST {}'.format(i)
    })

with open("random.json", "w") as writeJSON:
    for i, item in enumerate(items):
        writeJSON.write(json.dumps(item, indent=2))

        if i != len(items) - 1:
            writeJSON.write(';')

相关问题 更多 >