我有一个输入整数。我用它们构建了一个字典(作为值)。然后我将其转储到JSON,以便在其他地方重用。
我最终(在“其他地方”)需要将这些整数用作字符串。因此,我可以进行转换
无论解决方案如何,代码中都会有大量的str()
。
我正在寻找一种更简洁的方法,将int
转换为str
。
一个想法是recursively parse the dict一旦构建,就在json.dumps()
之前,并在那里进行转换。
我想知道,如果在转储JSON时没有办法处理这个问题?可能是json.JSONEncoder? (坦率地说,我不太了解)
答案 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']}
parse_int
,如果指定,将使用字符串调用 要解码的每个JSON int。默认情况下,这相当于 INT(num_str)。这可以用于使用其他数据类型或解析器 对于JSON整数(例如float)。