python將鍵值對參數轉換成字典


def strToDict(string):
    strList = []    # 創建空列表
    for i in string.split("&"):     # 循環遍歷第一次切割結果
        strList.append(i.split("=", 1))     # 切割第二次寫入列表中,只切割一次防止把值里的=切割掉
    return dict(strList)    # 列表轉換為字典


print(strToDict("id=4&name=zengyu&age=33"))

運行結果:

{'id': '4', 'name': 'zengyu', 'age': '33'}

注意:dict將列表轉換為字典,列表要是二維列表,且元素長度必須為2;

我們可以把上述代碼復雜化,打印每次切割結果,更能懂得是如何轉換為字典的:

string = "id=4&name=zengyu&age=1815=33"
strList = []  # 創建空列表
first = string.split("&")
print(first)  # 查看第一次切割結果
for i in first:
    second = i.split("=", 1)
    print(second)   # 獲取到二次切割長度為2的列表
    strList.append(second)  # 將二次切割的列表添加到空列表中
print(strList)  # 打印二維列表
newDict = dict(strList)     # 轉化為字典
print(newDict)  

運行結果:

['id=4', 'name=zengyu', 'age=1815=33']
['id', '4']
['name', 'zengyu']
['age', '1815=33']
[['id', '4'], ['name', 'zengyu'], ['age', '1815=33']]
{'id': '4', 'name': 'zengyu', 'age': '1815=33'}

上述方法是通過定義空列表,然后使用dict函數轉化

另一種方法是通過定義空字典,與上一方法大同小異:

def strToDict(string):
    newDict = {}
    for item in string.split("&"):
        strList = item.split("=", 1)
        newDict[strList[0]] = strList[1]    # 設置空字典的key等於切割列表的第一個元素,value等於第二個元素
    return newDict


print(strToDict("id=4&name=zengyu&age=1815=33"))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM