如何从JSON文件中的每个值中删除空格和换行符?

我有一个JSON具有以下结构的文件:

{

"name":[

{

"someKey": "\n\n some Value "

},

{

"someKey": "another value "

}

],

"anotherName":[

{

"anArray": [

{

"key": " value\n\n",

"anotherKey": " value"

},

{

"key": " value\n",

"anotherKey": "value"

}

]

}

]

}

现在,我要为文件中的strip每个值关闭所有空白和换行符JSON。有什么方法可以遍历字典的每个元素以及嵌套的字典和列表吗?

回答:

现在,我要为JSON文件中的每个值剥离所有空白和换行符

使用pkgutil.simplegeneric()创建一个辅助函数get_items()

import json

import sys

from pkgutil import simplegeneric

@simplegeneric

def get_items(obj):

while False: # no items, a scalar object

yield None

@get_items.register(dict)

def _(obj):

return obj.items() # json object. Edit: iteritems() was removed in Python 3

@get_items.register(list)

def _(obj):

return enumerate(obj) # json array

def strip_whitespace(json_data):

for key, value in get_items(json_data):

if hasattr(value, 'strip'): # json string

json_data[key] = value.strip()

else:

strip_whitespace(value) # recursive call

data = json.load(sys.stdin) # read json data from standard input

strip_whitespace(data)

json.dump(data, sys.stdout, indent=2)

注意:functools.singledispatch()函数(Python

3.4+)将允许使用collections

MutableMapping/MutableSequence代替dict/list此处。

输出量

{

"anotherName": [

{

"anArray": [

{

"anotherKey": "value",

"key": "value"

},

{

"anotherKey": "value",

"key": "value"

}

]

}

],

"name": [

{

"someKey": "some Value"

},

{

"someKey": "another value"

}

]

}

以上是 如何从JSON文件中的每个值中删除空格和换行符? 的全部内容, 来源链接: utcz.com/qa/430548.html

回到顶部