从json文件中删除额外的空白
问题描述:
如何删除json文件中的键额外空间? 我的文件看起来像这样...从json文件中删除额外的空白
{
" bankName " : " State bank of China " ,
" branchDetails " : [
{
...
预期结果:
{
"bankName" : " State bank of China " ,
"branchDetails" : [
{
...
我可以用字符串“脱衣”的方法来JSON文件(最好值以及与钥匙)?
答
解析您的JSON文件转换为Python数据结构,去除所有的字符串,并再次将其写出来:
from functools import singledispatch
@singledispatch
def json_strip(obj):
return obj
@json_strip.register(str)
def _(obj):
return obj.strip()
@json_strip.register(list)
def _(obj):
return [json_strip(v) for v in obj]
@json_strip.register(dict)
def _(obj):
return {json_strip(k): json_strip(v) for k, v in obj.items()}
with open(inputfile, 'r') as inf:
with open(outputfile, 'w') as outf:
json.dump(json_strip(json.load(inf)), outf)
它使用@functools.singledispatch()
decorator创造了一系列的递归函数来处理不同类型的;这需要Python 3.4或更新版本。
您可能需要使用separators
, indent
and sort_keys
options调整json.dump()
输出。
快速演示:
>>> json_strip({" bankName " : " State bank of China "})
{'bankName': 'State bank of China'}
我不认为这是一个神奇的方法来执行这项任务。也许最快的方法是加载()你的json内容以获得普通的Python对象,然后在dict键上循环调用strip(),然后将结果转储()返回给json – Antwane