如何使用json.dumps()将所有int转换为嵌套dict中的str?

时间:2015-01-25 15:40:33

标签: python json dictionary

我有一个输入整数。我用它们构建了一个字典(作为值)。然后我将其转储到JSON,以便在其他地方重用。

我最终(在“其他地方”)需要将这些整数用作字符串。因此,我可以进行转换

  • 上游(建立字典时)
  • 或在接收方(“其他地方”)。

无论解决方案如何,代码中都会有大量的str()。 我正在寻找一种更简洁的方法,将int转换为str

一个想法是recursively parse the dict一旦构建,就在json.dumps()之前,并在那里进行转换。 我想知道,如果在转储JSON时没有办法处理这个问题?可能是json.JSONEncoder? (坦率地说,我不太了解)

1 个答案:

答案 0 :(得分:3)

假设在接收端运行Python,您可以在使用parse_int参数加载JSON时将整数转换为字符串:

import json

test = {'foo':1, 'bar':[2,3]}
json_str = json.dumps(test)
print(json.loads(json_str, parse_int=str))

产量

{u'foo': '1', u'bar': ['2', '3']}

Per the docs

  

parse_int,如果指定,将使用字符串调用   要解码的每个JSON int。默认情况下,这相当于   INT(num_str)。这可以用于使用其他数据类型或解析器   对于JSON整数(例如float)。