python中字符串和json的转换,Python笔记——json和字符串之间的相互转换

json和字符串之间的转换,主要使用到json库中的json.loads()函数json.dumps()含函数。

所以我们首先要导入json库。

import json

一、字符串转为json,使用 json.loads() 函数

首先我们新建一个字符串,考虑全面一点,里面包含中文和英文,这会涉及到后面字符串转json时候的中文编码问题。

string = """

[

{

"name": "冯振振",

"age": "23",

"job": "Python engineer",

"motto": "I like coding"

},

{

"name": "康康",

"age": "23",

"job": "web engineer",

"motto": "专业前端,不至于前端"

}

]

字符串转成json,只需要使用json.loads()函数即可,传入字符串,输出json格式

json_list = json.loads(string)

# 输入结果如下

[{'name': '冯振振', 'age': '23', 'job': 'Python engineer', 'motto': 'I like coding'}, {'name': '康康', 'age': '23', 'job': 'web engineer', 'motto': '专业前端,不至于前端'}]

使用json.loads()将字符串转换为json之后,所属的数据类型是list类型,即

二、json转字符串,使用 json.dumps() 函数,必要时需要传入ensure_ascii=False, indent=2参数

我们使用上面转换得到的json格式数据,将它转换为字符串。

[{'name': '冯振振', 'age': '23', 'job': 'Python engineer', 'motto': 'I like coding'}, {'name': '康康', 'age': '23', 'job': 'web engineer', 'motto': '专业前端,不至于前端'}]

使用json.dumps(),可以将json格式转换为字符串格式。但是,如果我们的字符串中包含中文,转换后的字符串中,中文不会显示出来,只会显示中文的编码。

[{"name": "\u51af\u632f\u632f", "age": "23", "job": "Python engineer", "motto": "I like coding"}, {"name": "\u5eb7\u5eb7", "age": "23", "job": "web engineer", "motto": "\u4e13\u4e1a\u524d\u7aef\uff0c\u4e0d\u81f3\u4e8e\u524d\u7aef"}]

这个时候,我们可以给json.dumps()函数传入ensure_ascii=False参数,即可解决这个问题。

new_string = json.dumps(json_list,ensure_ascii=False)

# 输入的结果如下

[{"name": "冯振振", "age": "23", "job": "Python engineer", "motto": "I like coding"}, {"name": "康康", "age": "23", "job": "web engineer", "motto": "专业前端,不至于前端"}]

这个时候我们发现,转换后的字符串全部都显示在一行上面,看上去不直观。我们可以再给json.dumps()函数传入indent=2参数,设置字符串的缩进。

new_string = json.dumps(json_list,ensure_ascii=False,indent=2)

# 输出的结果如下

[

{

"name": "冯振振",

"age": "23",

"job": "Python engineer",

"motto": "I like coding"

},

{

"name": "康康",

"age": "23",

"job": "web engineer",

"motto": "专业前端,不至于前端"

}

]

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值