使用json.JSONDeprer的raw_depre方法
>>> import json>>> d = json.JSonDeprer()>>> x='{"name":"Bob Dylan", "tags":"{Artist}{Singer}"}{"name": "Michael Jackson"}'>>> d.raw_depre(x)({'tags': '{Artist}{Singer}', 'name': 'Bob Dylan'}, 47)>>> x=x[47:]>>> d.raw_depre(x)({'name': 'Michael Jackson'}, 27)
raw_depre返回一个2元组,第一个元素是解码后的JSON,第二个元素是JSON结束后下一个字节的字符串中的偏移量。
要循环直到结束或遇到无效的JSON元素:
>>> while True:... try:... j,n = d.raw_depre(x)... except ValueError:... break... print(j)... x=x[n:]... {'name': 'Bob Dylan', 'tags': '{Artist}{Singer}'}{'name': 'Michael Jackson'}
当循环中断时,对x的检查将显示x是否已经处理了整个字符串或遇到JSON语法错误。
如果有很长的短元素文件,则可以将一个块读入缓冲区并应用上面的循环,将循环中断后剩下的任何内容与下一个块连接起来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)