您的位置:首页 > 编程语言 > Python开发

Python Json

2020-07-21 04:12 1346 查看

1、 Python 对象转为 JSON 串

  函数 : json.dumps()

  功能 : 把 Python 对象转变为 JSON 串

  参数 : 可以是列表,字典,字符串, bool 类型等 Python 对象都可以

  返回类型 : 字符串

  备注 : /

# -*- coding: UTF-8 -*-
import json

listJson = json.dumps([1, 2, 3])
print 'json.dumps() 返回类型为:', type(listJson)
print '列表转换为 json 是:', listJson

dicJson = json.dumps({'aaa' : 1, 'bbb' : 2, 'ccc' : 3})
print '字典转换为 json 是:', dicJson

  运行结果

json.dumps() 返回类型为: <type 'str'>
列表转换为 json 是: [1, 2, 3]
字典转换为 json 是: {"aaa": 1, "bbb": 2, "ccc": 3}

 

2、 JSON 串转变为 Python 对象

  函数 : json.loads()

  功能 :  JSON 串转变为 Python 对象

  参数 : JSON 串

  返回类型 : 根据转换的 JSON 串来确定,比如转换字典,返回类型就是字典,转换列表,返回类型就是列表

  备注 : /

# -*- coding: UTF-8 -*-
import json

nowPythonObject = json.loads('{"aaa": 1, "bbb": 2, "ccc": 3}')
print type(nowPythonObject)
print nowPythonObject

print type(json.loads('[1, 2, 3]'))
print json.loads('[1, 2, 3]')

  运行结果

<type 'dict'>
{u'aaa': 1, u'bbb': 2, u'ccc': 3}
<type 'list'>
[1, 2, 3]

  PS : 咦,怎么转变的字典中有个 'u' 呢,它其实是代表 unicode 码类型,表示解析出来的 Python 对象 aaa 是用 unicode 码进行编码的

 

3、 读取 .json 文件

  函数 : json.load()

  功能 : 读取 .json 文件

  参数 : .json 文件对象,直接传递 .json 文件路径是不可以的,必须打开 .json 文件,然后传递打开的文件对象

  返回类型 :  根据转换的 JSON 串来确定,比如转换字典,返回类型就是字典,转换列表,返回类型就是列表

# -*- coding: UTF-8 -*-
import json

filePointer = open('testJson.json', 'r')
print json.load(filePointer)
filePointer.close()

  运行结果

{u'a': [100, {u'10': [[u'iPhone', 3600], [u'Xiaoming', 20], [u'Xiaohong', 30]]}]}

 

4、 常见错误

  异常信息提示

No JSON object could be decoded

  错误原因分析(第一种代码错误直接看截图,第二种是 .json 文件不正确,重新找一个 .json 文件即可)

  解决办法 : 直接删除错误原因的那一行,你可以对照该错误案例来跟正你的代码 (还有一种情况就是 .json 文件不正确,那样子你需要找一个对的 .json 文件)

转载于:https://www.cnblogs.com/rainbow-tan/p/11362697.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: