以与 CSV 相同的格式将数据转换为 JSON



我有以下代码将对象打印为CSV:

title = ['Username', 'Name', 'Job']
for x in title:
print(x, end =",")
for d in data:
line = d.get_username() + "," + d.get_name() + "," + d.get_role()
print(line)

我得到:

Username,Name,Job
rob,robert,developer
danny21,danny,developer

我想打印与 JSON 相同的数据以获得:

[ 
{ 
"Username":"rob",
"Name":"robert",
"Job":"developer"
},
{ 
"Username":"danny21",
"Name":"danny",
"Job":"developer"
}
]       

从前面的主题中,我了解到我们可以使用json.dumps但我不确定在这种情况下是否有帮助。 实现它的正确方法是什么?

你可以简单地做:

l = []
for d in data:
user_dictionary = {}
user_dictionary[title[0]] = d.get_username()
user_dictionary[title[1]] = d.get_name()
user_dictionary[title[2]] = d.get_role()
l.append(user_dictionary)

获取类似 JSON 的文件。

您还可以避免追加并执行以下操作:

def get_user_data(user):
user_dictionary = {}
user_dictionary[title[0]] = d.get_username()
user_dictionary[title[1]] = d.get_name()
user_dictionary[title[2]] = d.get_role()
return user_dictionary
l = list(map(get_user_data, data))

您可以使用 json.dump 在文件中转储 l

import json
with open('data.json', 'w') as outfile:
json.dump(l, outfile)

最新更新