使用eval將字符串轉化成字典時報name 'null' is not defined錯誤解決辦法


在接口測試過程中,為了取值將形如字典形式的字符串使用eval()方法轉化成字典方便取值

str={"code":100,"num":1,"data":5}

當值不是null時可以使用eval(str)正常轉為字典

strnull={"code":100,"num":1,"data":[null]}

而當值為null值時,再次使用eval(strnull)則報錯:name 'null' is not defined

如何處理這個報錯呢?如何將值為null的字符串轉化成字典類型呢?

上網查詢后得知:python無法處理null這樣的字符串,python中的變量“空”,不是null,也不是NULL,而是None,所以報錯

解決辦法如下:

一、將null轉化為空

global null

null = ''

strnull={"code":100,"num":1,"data":[null]}

strdict=eval(strnull)

type(strdict)#dict

print(strdict)#{'data': [''], 'code': 100, 'num': 1}

這種辦法可以正確轉為字典類型了~~~~

二、使用json模塊的loads()方法

from flask import json#引入json模塊
strdict=json.loads(strnull)
print(strdict)#{'data': [None], 'num': 1, 'code': 100}


免責聲明!

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



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