如何生成json字符串

时间:2016-03-12 15:07:39

标签: python json

我指的是question

这是我的代码

# codes for append data to csv file.
def inputappend():
    name=raw_input("input name: ")
    id=raw_input("input ID ")
    height=raw_input("inut height: ")
    length=raw_input("input length ")

    with open('namelist.csv','a') as csvfile:
         csvfile.write(name+','+ id+ ','+ height+ ','+ length+ ',')         
         csvfile.close()

这是输出

my_dictionary={}
a=[]
for i in range(1,5)

    jsonstring = {id[i] : marks[i]}
    a.append(jsonstring)
my_dictionary=json.dumps(a)
print(my_dictionary)

我想要

这样的字符串
[{"123": [86, 0, 0, 96, 45.5]}]

1 个答案:

答案 0 :(得分:2)

只需编码结果即可。您正在构建Python字典,将所有键添加到一个字典并对最终结果进行编码。对JSON进行编码然后再次解码并没有真正实现任何目的。

studentInfo = {}
for i in range(1,5)
    studentInfo[id[i]] = marks[i]

jsonstring = json.dumps(studentInfo)

您可以使用zip()id条目与marks条目合并,而不是使用索引:

studentInfo = {}
for student_id, student_marks in zip(id, marks):
    studentInfo[student_id] = student_marks

jsonstring = json.dumps(studentInfo)

更好的是,您可以直接从zip()输出直接生成整个字典:

studentInfo = dict(zip(id, marks))
jsonstring = json.dumps(studentInfo)
相关问题