如何使用 json.dumps() 将嵌套字典中的所有 int 转换为 str?
how to convert all int to str in a nested dict with json.dumps()?
我有一个输入,整数。我用它们(作为值)构建了一个字典。然后我将它转储到 JSON,以便在其他地方重复使用。
我最终(在 "elsewhere")需要将这些整数用作字符串。因此我可以进行转换
- 上游(构建字典时)
- 或在接收端("elsewhere")。
无论解决方案如何,代码中都会有大量 str()
。
在这种情况下,我正在寻找一种更简洁的方法将所有 int
转换为 str
。
一个想法是 recursively parse the dict 一旦构建,就在 json.dumps()
之前,然后在那里进行转换。
不过,我想知道在转储 JSON 时是否没有办法处理这个问题?可能与 json.JSONEncoder? (坦率地说,我不太了解)
假设在接收端您是 运行 Python,您可以在加载 JSON 时使用 parse_int
参数将整数转换为字符串:
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
, if specified, will be called with the string
of every JSON int to be decoded. By default this is equivalent to
int(num_str). This can be used to use another datatype or parser
for JSON integers (e.g. float).
我有一个输入,整数。我用它们(作为值)构建了一个字典。然后我将它转储到 JSON,以便在其他地方重复使用。
我最终(在 "elsewhere")需要将这些整数用作字符串。因此我可以进行转换
- 上游(构建字典时)
- 或在接收端("elsewhere")。
无论解决方案如何,代码中都会有大量 str()
。
在这种情况下,我正在寻找一种更简洁的方法将所有 int
转换为 str
。
一个想法是 recursively parse the dict 一旦构建,就在 json.dumps()
之前,然后在那里进行转换。
不过,我想知道在转储 JSON 时是否没有办法处理这个问题?可能与 json.JSONEncoder? (坦率地说,我不太了解)
假设在接收端您是 运行 Python,您可以在加载 JSON 时使用 parse_int
参数将整数转换为字符串:
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
, if specified, will be called with the string of every JSON int to be decoded. By default this is equivalent to int(num_str). This can be used to use another datatype or parser for JSON integers (e.g. float).