#------------------------------------------------------------------------------ # convert the xxx=yyy into tuple('xxx', yyy), then return the tuple value # [makesure input string] # (1) is not include whitespace # (2) include '=' # (3) last is no ';' # [possible input string] # blogUserName="againinput4" # publisherEmail="" # synchMiniBlog=false # publishTime=1322129849397 # publisherName=null # publisherNickname="\u957F\u5927\u662F\u70E6\u607C" def convertToTupleVal(equationStr) : (key, value) = ('', None); try : # Note: # here should not use split with '=', for maybe input string contains string like this: # http://img.bimg.126.net/photo/hmZoNQaqzZALvVp0rE7faA==/0.jpg # so use find('=') instead firstEqualPos = equationStr.find("="); key = equationStr[0:firstEqualPos]; valuePart = equationStr[(firstEqualPos + 1):]; # string type valLen = len(valuePart); if valLen >= 2 : # maybe string if valuePart[0] == '"' and valuePart[-1] == '"' : # is string type value = str(valuePart[1:-1]); elif (valuePart.lower() == 'null'): value = None; elif (valuePart.lower() == 'false'): value = False; elif (valuePart.lower() == 'true') : value = True; else : # must int value value = int(valuePart); else : # len=1 -> must be value value = int(valuePart); #print "Convert %s to [%s]=%s"%(equationStr, key, value); except : (key, value) = ('', None); print "Fail of convert the equal string %s to value"%(equationStr); return (key, value);
例 2.13. convertToTupleVal的使用范例
# (4) convert to value for equation in equationList : (key, value) = convertToTupleVal(equation);