Python json解析


#encoding: utf-8
'''
Author:Siukwan
'''
import sys  
reload(sys)   
sys.setdefaultencoding('utf8')  
import json

def txt2str(file='jsondata2.txt'):
	'''
	打开指定的json文件
	'''
	fp=open(file)
	allLines = fp.readlines()
	fp.close()
	str=""
	for eachLine in allLines:
		#eachLine=ConvertCN(eachLine)

		#转换成字符串
		for i in range(0,len(eachLine)):
			#if eachLine[i]!= ' ' and eachLine[i]!= '	' and eachLine[i]!='\n': #删除空格和换行符,但是json双引号中的内容空格不能删除
			str+=eachLine[i]
	return str


class jsonparser:

	def __init__(self, str=None):
		self._str = str
		self._index=0

	def _skipBlank(self):  
		'''
		跳过空白、换行或tab: \n\t\r
		'''
		while self._index0: #数组不为空,方便后续格式合并
			_str += _to_str(pv[0])
		for i in range(1,len(pv)):
			_str+=','+_to_str(pv[i])#因为已经合并了第一个,所以可以加逗号
		_str+=']'

	elif type(pv) == type(''): 
		#字符串
		_str = '"'+pv+'"'
	elif pv == True:
		_str+='true'
	elif pv == False:
		_str+='false'
	elif pv == None:
		_str+='null'
	else:
		_str = str(pv)
	return _str


#main函数
if __name__ == '__main__':
	print "test"
	'''
	jsonInstance=jsonparser(txt2str())
	jsonTmp = jsonInstance.parse()
	print jsonTmp
	print jsonTmp['obj1']['family']['father']
	print jsonTmp['obj1']['family']['sister']
	print ' '
	jsonInstance=jsonparser(txt2str('jsondataArray.txt'))
	jsonTmp = jsonInstance.parse()
	print jsonTmp
	print ' '
	'''
	jsonInstance=jsonparser(txt2str('jsonTestFile.txt'))
	jsonTmp = jsonInstance.parse()
	print jsonTmp
	print _to_str(jsonTmp)

	print ' '
	jsonInstance=jsonparser(txt2str('json.txt'))
	jsonTmp = jsonInstance.parse()
	print jsonTmp

	print _to_str(jsonTmp)