Python中JSON格式与字符串转换

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38038143/article/details/80832157

1. 字符串转为JSON

源代码:
import json

str = '''
[{
    "name": "Tom",
    "gender": "male"
}, {
    "name": "Jack",
    "gender": "male"   
}]
'''
#将字符串转为json格式
print(type(str))
data = json.loads(str)
print(type(data))
print(data)
运行结果:
<class 'str'>
<class 'list'>
[{'name': 'Tom', 'gender': 'male'}, {'name': 'Jack', 'gender': 'male'}]

2. JSON转为字符串

源代码:
import json

data = [{
    "name": "Tom",
    "gender": "male"
}, {
    "name": "杰克",
    "gender": "男"   
}]

#将json格式转为字符串
print(type(data))
str = json.dumps(data, indent=2) #indent=2按照缩进格式
print(type(str))
print(str)

#保存到json格式文件
with open('data.json', 'w', encoding='utf-8') as file:
    file.write(json.dumps(data, indent=2, ensure_ascii=False)) #ensure_ascii=False可以消除json包含中文的乱码问题
运行结果:

没有添加ensure_ascii=False将导致乱码.

<class 'list'>
<class 'str'>
[
  {
    "name": "Tom",
    "gender": "male"
  },
  {
    "name": "\u6770\u514b",
    "gender": "\u7537"
  }
]
data.json文件内容:

添加ensure_ascii=False

[
  {
    "name": "Tom",
    "gender": "male"
  },
  {
    "name": "杰克",
    "gender": "男"
  }
]
展开阅读全文

没有更多推荐了,返回首页