在我当前的django项目中,我建立了一个字典,其中有一个元组,其中包含有关给定团队的数据。团队由具有子角色并分配给该特定团队的资源组成。
现在的问题是,我需要将此字典转换为JSON格式,因为我想使用不同的Google图表来可视化数据,而且我不知道该怎么做。
这是字典中的一个例子:
{'Team Bobcat': {'Tom Bennett': {('Build Master', 50)}}
{'Team Coffe': {'Garfield Foster': {('Scrum Master', 100)}}
我认为我可能需要遍历字典并构建JSON的每个部分,但不确定如何做到这一点。 试图使用json.dumps(data),但是那只会给我一个错误,说“类型为'set'的对象不能json可序列化”,我在这篇文章中读到了一些东西: Serializable
有人可以给我任何建议吗?
答案 0 :(得分:1)
希望这对您有帮助:
>>> a = {2: 3, 4: 5}
>>> a
{2: 3, 4: 5}
>>> type(a)
<class 'dict'>
>>>
>>> b = {2, 3, 4, 5}
>>> b
{2, 3, 4, 5}
>>> type(b)
<class 'set'>
>>>
>>> c = {7}
>>> c
{7}
>>> type(c)
<class 'set'>
>>>
>>> d = {}
>>> d
{}
>>> type(d)
<class 'dict'>
换句话说,您可以根据自己写的内容在set
的帮助下声明dict
或{}
。
在此处详细了解:https://docs.python.org/3/tutorial/datastructures.html
要使您的数据可序列化,请改用以下方法:
{'Team Bobcat': {'Tom Bennett': ['Build Master', 50]}}
{'Team Coffe': {'Garfield Foster': ['Scrum Master', 100]}}
示例:
>>> json.dumps({'Team Bobcat': {'Tom Bennett': ['Build Master', 50]}})
'{"Team Bobcat": {"Tom Bennett": ["Build Master", 50]}}'
答案 1 :(得分:1)
做这样的事情:
import json data = {'Team Bobcat': {'Tom Bennett': {('Build Master', 50)}} {'Team Coffee': {'Garfield Foster': {('Scrum Master', 100)}} json_string = json.dumps(data)
答案 2 :(得分:0)
您可以使用JSONEncoder
import json
class ComplexEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, set):
return [el for el in obj]
return json.JSONEncoder.default(self, obj)
print(json.dumps({'Team Coffe': {'Garfield Foster': {('Scrum Master', 100)}}}, cls=ComplexEncoder))