如何删除json文件中密钥的额外空间? 我的文件看起来像这样......
{
" bankName " : " State bank of China " ,
" branchDetails " : [
{
...
预期结果:
{
"bankName" : " State bank of China " ,
"branchDetails" : [
{
...
我可以将字符串的“strip”方法用于json文件(最好是带键的值)吗?
答案 0 :(得分:1)
将您的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'}