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

效果图:


上一篇 下一篇

猜你喜欢

热点阅读