如何在Python中创建包含数组的json文件

Sag*_*gar 0 python json

我想创建一个 json 文件,例如

{
"a":["12","34","23",...],
"b":["13","14","45",....],
.
.
.
}
Run Code Online (Sandbox Code Playgroud)

密钥应来自列表:

lis = ['a','b',...]
Run Code Online (Sandbox Code Playgroud)

以及来自 sql 查询“select id from”+ i 的值,我在其中通过“i”迭代列表。该查询仅返回列 ID。

这是示例代码:

lis = ['a','b','c']
len_obj = len(lis)

with open("Dataset.json", 'w') as file:
    for i in lis:
        file.write(i)
        obj_query = i + '_query'       
        obj_query = sf.query("select id from " + i) 
        jsondata = json.loads(json.dumps(obj_query['records']))
        length = len(jsondata)
        i = {}
        k = 0

        for j in range(length):
            obj_id = jsondata[j]['Id']
            # print("id " + obj_id)

            if k == 0:
                ids = "\"" + obj_id + "\""
                k = 1
            else:
                ids = ids + ",\"" + obj_id + "\""  

        if count != len_obj - 1: 
            file.write(ids)    
        else:
            file.write(ids)    

        count += 1
    file.write("}")
Run Code Online (Sandbox Code Playgroud)

最终输出应该是这样的:

{
"a":["12","23",...],
"b":["234","456",...],
}
Run Code Online (Sandbox Code Playgroud)

这是我的第一个博客,也是我的第一个程序。请引导我完成这个过程。

请原谅程序的缩进,因为我无法在这里正确地编写它。

Ale*_*lex 6

您可以简单地创建一个包含您想要的值的字典,然后使用将其转换为 jsonjson.dumps

import json
data = {}
data['a'] = ["12","34","23"]
data['b'] = ["13","14","45"]
json_data = json.dumps(data)
print json_data
Run Code Online (Sandbox Code Playgroud)

  • 您甚至可以执行 `with open("Dataset.json", 'w') as file: json.dump( data, file )`。 (2认同)

Mat*_*att 6

您应该能够将整个事情浓缩为:

import json

tables = ["a", "b", "c", "d"]
data = {}

for t in tables:
    results = sf.query("select id from %s" % t)["records"]
    data[t] = [r["id"] for r in results]

with open("Dataset.json", "w") as f:
    json.dump(data, f)
Run Code Online (Sandbox Code Playgroud)