Python 如何将嵌套字典的所有值转换为字符串?
我正在编写一个python应用程序,其中有一个可以嵌套到任何级别的变量字典 任何级别的键都可以是int或string。但我想将所有级别的所有键和值转换为字符串。字典的嵌套方式是可变的,这使得它有点复杂Python 如何将嵌套字典的所有值转换为字符串?,python,dictionary,Python,Dictionary,我正在编写一个python应用程序,其中有一个可以嵌套到任何级别的变量字典 任何级别的键都可以是int或string。但我想将所有级别的所有键和值转换为字符串。字典的嵌套方式是可变的,这使得它有点复杂 { "col1": { "0": 0, "1": 8, "2": { 0: 2, } "3": 4, "4": 5 }, "col2": {
{
"col1": {
"0": 0,
"1": 8,
"2": {
0: 2,
}
"3": 4,
"4": 5
},
"col2": {
"0": "na",
"1": 1,
"2": "na",
"3": "na",
"4": "na"
},
"col3": {
"0": 1,
"1": 3,
"2": 3,
"3": 6,
"4": 3
},
"col4": {
"0": 5,
"1": "na",
"2": "9",
"3": 9,
"4": "na"
}
}
我正在寻找最短和最快的功能来实现这一点。还有其他类似的问题提出了解决方法,但没有一个涉及字典的“变量嵌套”性质
任何想法都将受到欢迎。这是我能想到的最直接的方法:
import json
data = {'col4': {'1': 'na', '0': 5, '3': 9, '2': '9', '4': 'na'}, 'col2': {'1': 1, '0': 'na', '3': 'na', '2': 'na', '4': 'na'}, 'col3': {'1': 3, '0': 1, '3': 6, '2': 3, '4': 3}, 'col1': {'1': 8, '0': 0, '3': 4, '2': {0: 2}, '4': 5}}
stringified_dict = json.loads(json.dumps(data), parse_int=str)
以下是一些指向json加载和解析文档的链接:,这是我能想到的最简单的方法:
import json
data = {'col4': {'1': 'na', '0': 5, '3': 9, '2': '9', '4': 'na'}, 'col2': {'1': 1, '0': 'na', '3': 'na', '2': 'na', '4': 'na'}, 'col3': {'1': 3, '0': 1, '3': 6, '2': 3, '4': 3}, 'col1': {'1': 8, '0': 0, '3': 4, '2': {0: 2}, '4': 5}}
stringified_dict = json.loads(json.dumps(data), parse_int=str)
以下是一些指向json加载和解析文档的链接:,您可以递归地查看字典:
def iterdict(d):
for k, v in d.items():
if isinstance(v, dict):
iterdict(v)
else:
if type(v) == int:
v = str(v)
d.update({k: v})
return d
您可以递归地检查字典:
def iterdict(d):
for k, v in d.items():
if isinstance(v, dict):
iterdict(v)
else:
if type(v) == int:
v = str(v)
d.update({k: v})
return d
类似的东西,对int,float,“constant”非常有效——不确定这是什么,但它不能转换bool或数组。有什么好的选择吗?应该涵盖除bool之外的所有内容。嘿,使用int,float,“constant”非常好——不确定这是什么,但它不能转换bool或数组。有什么好的选择吗?应涵盖除布尔以外的所有项目。。