首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

做一个的json转换为yaml网页

2024-12-14 来源:华拓网

原本以为比较简单,等到做的时候,踩了一些坑。记录一下这些坑。

1.如何去除制表符,换行符\n\t\t\t等等

如果我在前端网页的输入框中输入json格式的额数据,如:



    { "people": [

    { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },

    { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},

    { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

    ]}

解决方法
d=json.JSONEncoder().encode(incase)
f=json.loads(d)                                                                                      
j=json.dumps(f)                                                                                                 
h=json.loads(j)
  • 其中的第一行是
  • json.loads是将json字符串转化为dict字典
  • json.dumps是将dict转换为json字符串。
  • 这时j就已经没有其他污染符号了。最后一步就是把json转换为dict,因为写入yaml文件要用字典格式。

incase是我从网页读取的json数据,有一个重要的知识点是json中的数据与dict字典中数据一个重要的不同点是,json中的数据是用双引号的。单引号转双引号的代码为

dict = {'as': 'df', 'zx': 'cv'}
dict = str(dict).replace('\'','\"')

其实,这行代码用不到。

2.写入yaml文件,并用yaml格式。

如果直接用

yaml.dump(dict , f.yaml)

这时写入yaml文件,查看格式,并不是yaml格式,还是挤在一起的dict。

解决方法

这时就要用这个写法

yaml.dump(dict , f.yaml ,default_flow_style=False)

3.错误!!python/unicode

如果用dump那样写在yaml文件,查看写入,就会有这个报错写入yaml文件

解决方法

yaml.dump() 换为yaml.safe_dump

显示全文