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类型,即<class '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": "专业前端,不至于前端"
  }
]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基于《Python语言程序设计基础(第2版)》 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 ...
    柄志阅读 27,713评论 4 44
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,152评论 2 16
  • 迷鹿mirror阅读 968评论 0 2
  • 你好像在,心不在。 我不孤独,但空虚。 我想要心与心的直面交击, 想要和你乘着风云里雾里。 可世事难有如意。 两颗...
    一条牙缝阅读 1,535评论 0 0
  • 有的时候你想让一个函数同时是两个类的友元函数。你可以选择把一个类的成员函数作为另一个类的友元函数,但是一般的情况是...
    Stroman阅读 1,724评论 0 0

友情链接更多精彩内容