在python中创建迭代json文件?

2024-04-19 20:47:43 发布

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

目前我正在使用:

import json
jsonlist = ["data", "test", "row", "blah", "boo"]

with open('test.txt', "wb") as jsfile:
    jsfile.write(json.dumps(jsonlist))

我的电流输出是:

["data", "test", "row", "blah", "boo"]

理想化我想要一个迭代的json文件,如下所示:(如果格式正确的话)

[1: "data",
2: "test",
3: "row",
4: "blah",
5: "boo"]

我的实际数据是相当大的html块,这只是我如何做的一个例子…

有人知道我怎样才能做到这一点吗?你知道吗


Tags: testimporttxtjsondataaswithopen
1条回答
网友
1楼 · 发布于 2024-04-19 20:47:43

很少有必要考虑如何将一个JSON表示转换成另一个;相反,将一个Python对象转换成另一个,然后用JSON表示。你知道吗

例如,给定这个Python列表:

["data", "test", "row", "blah", "boo"]

……也许你想要这句话:

{1: "data", 2: "test", 3: "row", 4: "blah", 5: "boo"}

…这将仅限于:

'{"1": "data", "2": "test", "3": "row", "4": "blah", "5": "boo"}'

请注意,键已变成字符串。JSON对象的键必须是字符串。如果这不是您想要的,那么您就不需要JSON对象。在这种情况下,您可能需要一个成对的列表,它将变成一个JSON数组的JSON数组(因为数组可以用数字作为值)?你知道吗

^{}可以将列表转换为(index, value)对的列表,^{}可以将(key, value)对的列表转换为dict:

jsonlist = ["data", "test", "row", "blah", "boo"]
jsondict = dict(enumerate(jsonlist, 1))
with open('test.txt', "wb") as jsfile:
    jsfile.write(json.dumps(jsondict))

或者,如果您只需要一个数组数组,请在enumerate处停止。因为enumerate实际上给了您一个值的迭代器,而不是一个序列,所以您必须将它包装在list

jsonlist = ["data", "test", "row", "blah", "boo"]
jsonpairs = list(enumerate(jsonlist, 1))
with open('test.txt', "wb") as jsfile:
    jsfile.write(json.dumps(jsonpairs))

请注意,因为Python使用基于0的索引,所以我必须将start参数传递给enumerate,以便从1而不是0开始计数。你知道吗

相关问题 更多 >