📅  最后修改于: 2020-05-05 11:59:13             🧑  作者: Mango
缩写为JSON的Javascript对象表示法是一种轻量级的数据交换格式。它将Python对象编码为JSON字符串,并将JSON字符串解码为Python对象。
函数:
类
转换基于此转换表。
实现
代码
我们将使用dump(),dumps()和JSON.Encoder类。
# 代码将在Python 3中运行
from io import StringIO
import json
fileObj = StringIO()
json.dump(["Hello", "芒果"], fileObj)
print("使用json.dump(): "+str(fileObj.getvalue()))
class TypeEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, type):
return str(obj)
print("使用json.dumps(): "+str(json.dumps(type(str), cls=TypeEncoder)))
print("使用json.JSONEncoder()。encode"+
str(TypeEncoder().encode(type(list))))
print("使用json.JSONEncoder()。iterencode"+
str(list(TypeEncoder().iterencode(type(dict)))))
输出:
使用json.dump(): ["Hello", "芒果"]
使用json.dumps(): ""
使用json.JSONEncoder()。encode""
使用json.JSONEncoder()。iterencode['""']
解码
我们将使用load(),loads()和JSON.Decoder类。
# 代码将在Python 3中运行
from io import StringIO
import json
fileObj = StringIO('["芒果 for 芒果"]')
print("使用json.load(): "+str(json.load(fileObj)))
print("使用 json.loads(): "+str(json.loads('{"芒果": 1, "for": 2, "芒果": 3}')))
print("使用 json.JSONDecoder().decode(): " +
str(json.JSONDecoder().decode('{"芒果": 1, "for": 2, "芒果": 3}')))
print("使用 json.JSONDecoder().raw_decode(): " +
str(json.JSONDecoder().raw_decode('{"芒果": 1, "for": 2, "芒果": 3}')))
输出:
使用json.load(): ['芒果 for 芒果']
使用 json.loads(): {'for': 2, '芒果': 3}
使用 json.JSONDecoder().decode(): {'for': 2, '芒果': 3}
使用 json.JSONDecoder().raw_decode(): ({'for': 2, '芒果': 3}, 34)