一、基础
(1)字符串处理
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
- json.dumps(): 对数据进行编码。
- json.loads(): 对数据进行解码。
(2)如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如:
# 写入 JSON 数据
with open('data.json', 'w') as f:
json.dump(data, f)
# 读取数据
with open('data.json', 'r') as f:
data = json.load(f)
二、实例,爬取的json文件有时候是多个json对象串联。
(1)格式1:{}{}{}{}
仅当您的JSON对象背对背写到文件中且中间没有换行符时,才使用此选项。
A.Json
内容格式:{}{}{}{}{}{}
Read.py
from json import JSONDecoder
from functools import partial
# 解析{}{}{}的函数。
def json_parse(fileobj, decoder=JSONDecoder(), buffersize=2048):
buffer = ''
for chunk in iter(partial(fileobj.read, buffersize), ''):
buffer += chunk
while buffer:
try:
result, index = decoder.raw_decode(buffer)
yield result
buffer = buffer[index:].lstrip()
except ValueError:
# Not enough data to decode, read more
Break
If __name__ =’__main__’:
# data_list = []
# filename就是A.json
with open('yourfilename', 'r') as infh:
for data in json_parse(infh):
Print(data)
(2) 格式2
{}
{}
{}
如果JSON文件中对象{}和其他对象{}有换行符,并且每个JSON对象都限于一行。
A.JSON
内容格式为:
{}
{}
{}
则可以用以下方式处理:
A.JSON
内容格式为:
{}
{}
{}
Read.py
import json
data = []
# file就是上边的A.JSON文件
with open('file') as f:
for line in f:
data.append(json.loads(line))
参考资料: