无法在 python 中使用 json.dumps() 将字典转换为 JSON 对象

我正在尝试使用转换字典json.dumps()


def create_custom(json_input):

    custom = dict()

    custom['list'] = dict()

    custom['list']['Elements'] = json_input['nodes']

    custom['list']['links'] = json_input['links']

    return custom


JsonData = create_custom(json_graph.node_link_data(G))


for i, j in enumerate(Elements):

    JsonData['list']['Elements'][i]['Shape'] = j['Shape']

上面的代码不完整,但我得到的最终输出是一本字典


输出


{'list': {'Elements': [{'text': 'Task 1', 'Shape': 'Decision', 'id': 0},

   {'text': 'Task 2', 'Shape': 'Decision', 'id': 1},

   {'text': 'Task 3', 'Shape': 'Decision', 'id': 2},

   {'text': 'Task 4', 'Shape': 'Decision', 'id': 3},

   {'text': 'Task 5', 'Shape': 'Rectangle', 'id': 4},

   {'text': 'Task 6', 'Shape': 'Decision', 'id': 5}],

  'links': [{'source': 0, 'target': 1, 'key': 0},

   {'source': 0, 'target': 4, 'key': 0},

   {'source': 1, 'target': 2, 'key': 0},

   {'source': 1, 'target': 3, 'key': 0},

   {'source': 2, 'target': 1, 'key': 0},

   {'source': 2, 'target': 4, 'key': 0},

   {'source': 3, 'target': 1, 'key': 0},

   {'source': 3, 'target': 4, 'key': 0},

   {'source': 4, 'target': 5, 'key': 0},

   {'source': 5, 'target': 4, 'key': 0},

   {'source': 5, 'target': 1, 'key': 0}]}}

当我将上面的输出转换为 JSON 对象时


json.dumps(JsonData)

我收到一个错误:


~\AppData\Local\Continuum\anaconda3\lib\json\encoder.py in default(self, o)

    177 

    178         """

--> 179         raise TypeError(f'Object of type {o.__class__.__name__} '

    180                         f'is not JSON serializable')

    181 


TypeError: Object of type int64 is not JSON serializable

我遇到了很多答案,但他们在说numpy array等等。


我哪里出错了


慕虎7371278
浏览 137回答 1
1回答

FFIVE

我无法重现错误,但json.dumps对我来说效果很好。请参考以下截图:我试过的代码:import jsonJsonData={'list': {'Elements': [{'text': 'Task 1', 'Shape': 'Decision', 'id': 0},   {'text': 'Task 2', 'Shape': 'Decision', 'id': 1},   {'text': 'Task 3', 'Shape': 'Decision', 'id': 2},   {'text': 'Task 4', 'Shape': 'Decision', 'id': 3},   {'text': 'Task 5', 'Shape': 'Rectangle', 'id': 4},   {'text': 'Task 6', 'Shape': 'Decision', 'id': 5}],  'links': [{'source': 0, 'target': 1, 'key': 0},   {'source': 0, 'target': 4, 'key': 0},   {'source': 1, 'target': 2, 'key': 0},   {'source': 1, 'target': 3, 'key': 0},   {'source': 2, 'target': 1, 'key': 0},   {'source': 2, 'target': 4, 'key': 0},   {'source': 3, 'target': 1, 'key': 0},   {'source': 3, 'target': 4, 'key': 0},   {'source': 4, 'target': 5, 'key': 0},   {'source': 5, 'target': 4, 'key': 0},   {'source': 5, 'target': 1, 'key': 0}]}}print(type(JsonData))print(json.dumps(JsonData))print(type(json.dumps(JsonData)))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python