python "a=***&b=***&c=***" 类的 ap
2018-05-11 本文已影响0人
wizdzz
"a=&b=&c=***" 这种追加字符串在网络协议里面很常见:

现在有需求将其转换为双重链表或者 json 格式的字符串,一般有需求当然先谷歌,可是这种字符串也不知道学名是啥,所以问题不太好描述,那么只能自己动手了。
其实用 python 处理的话,逻辑并不复杂,为了方便有相同需要的同学直接放代码吧。
import copy
import logging
import traceback
logging.basicConfig(filename=__name__ + '.log')
def appendStr2JsonStr(src, itemSplitFlag='&', keyWordSplitFlag='='):
try:
jsonRet = "{"
# 分割各项
items = src.split(itemSplitFlag)
itemNames = list(items)
# 分割键值
for index in range(len(items)):
tmpItem = items[index]
itemNamesIndex = tmpItem.find(keyWordSplitFlag)
itemNames[index] = tmpItem[0:itemNamesIndex]
items[index] = tmpItem[itemNamesIndex + 1:]
# 拼接 json 字符串
for index in range(len(items)):
jsonRet += ('\"' + itemNames[index] + '\":\"' + items[index] + '\", ')
jsonRet = jsonRet[:-2]
jsonRet += '}'
return jsonRet
except BaseException, e:
s = traceback.format_exc()
logging.error(s)
return None
def appendStr2StrList(src, itemSplitFlag='&', keyWordSplitFlag='='):
try:
retList = []
tmpList = []
# 分割各项
items = src.split(itemSplitFlag)
itemNames = list(items)
# 分割键值
for index in range(len(items)):
tmpItem = items[index]
itemNamesIndex = tmpItem.find(keyWordSplitFlag)
itemNames[index] = tmpItem[0:itemNamesIndex]
items[index] = tmpItem[itemNamesIndex + 1:]
# 拼接双重链表
for index in range(len(items)):
tmpList[:] = []
tmpList.append(itemNames[index])
tmpList.append(items[index])
retList.append(copy.deepcopy(tmpList))
return retList
except BaseException, e:
s = traceback.format_exc()
logging.error(s)
return None
效果图:
