Python,使用json.dumps()导入的字符串不能被if语句识别,为什么不能?
我很高兴,因为你们可能对这一点相当陌生,我正试图用一个关键字在最后一个条目处破解json文件 但是,if语句无法识别使用Python,使用json.dumps()导入的字符串不能被if语句识别,为什么不能?,python,json,Python,Json,我很高兴,因为你们可能对这一点相当陌生,我正试图用一个关键字在最后一个条目处破解json文件 但是,if语句无法识别使用json.dumps()读取时的关键字end,因此循环永远不会中断 为什么不呢 from sys import argv import json import time script, filename = argv file = open(filename) jfile = json.load(file) currentIndex = 1 while Tr
json.dumps()
读取时的关键字end
,因此循环永远不会中断
为什么不呢
from sys import argv
import json
import time
script, filename = argv
file = open(filename)
jfile = json.load(file)
currentIndex = 1
while True:
now = time.time()
currentSegment = jfile[str(currentIndex)]
print json.dumps(currentSegment) #do stuff
currentIndex = currentIndex + 1
waitTime = json.dumps(currentSegment['wait'])
print waitTime
if waitTime == "end": #look for keyword "end", break loop.
print "break"
break
waitTime = float(waitTime)
elapsed = time.time() - now
time.sleep(waitTime-elapsed)
json文件如下所示:
{
"1" : {
"unit" : "feed.1",
"time" : 500,
"target" : 92.0,
"wait" : 1
}
,
"2" : {
"unit" : "feed.2",
"time" : 3000,
"target" : 10.0,
"wait" : 0.5
}
,
"3" : {
"unit" : "feed.1",
"time" : 4000,
"target" : 0.0,
"wait" : 1
}
,
"4" : {
"unit" : "feed.3",
"time" : 500,
"target" : 180.0,
"wait" : "end"
}
}
首先将字符串或整数转换为JSON,然后进行测试。这意味着值中将有引号:
>>> import json
>>> json.dumps('end')
'"end"'
>>> json.dumps('end')[0]
'"'
>>> json.dumps('end')[-1]
'"'
使用print
也会显示带引号的字符串值,这是因为它们是值的一部分
在进行测试时,您还需要包括以下引用:
更好的是,不要再次转储到JSON。这里有非常好的Python值:
waitTime = currentSegment['wait']
if waitTime == "end":
break
elapsed = time.time() - now
time.sleep(waitTime-elapsed)
请注意,现在您也不需要将waitTime
值再次转换为float;您可以直接将其与已用时间
值一起使用
如果需要将json数据发送到另一个系统或再次将其保存到文件中,则只需使用
json.dumps()
。在Python本身中处理数据时,确实没有必要。您首先将字符串或整数转换为JSON,然后进行测试。这意味着值中将有引号:
>>> import json
>>> json.dumps('end')
'"end"'
>>> json.dumps('end')[0]
'"'
>>> json.dumps('end')[-1]
'"'
使用print
也会显示带引号的字符串值,这是因为它们是值的一部分
在进行测试时,您还需要包括以下引用:
更好的是,不要再次转储到JSON。这里有非常好的Python值:
waitTime = currentSegment['wait']
if waitTime == "end":
break
elapsed = time.time() - now
time.sleep(waitTime-elapsed)
请注意,现在您也不需要将waitTime
值再次转换为float;您可以直接将其与已用时间
值一起使用
如果需要将json数据发送到另一个系统或再次将其保存到文件中,则只需使用json.dumps()
。当使用Python本身处理数据时,真的没有必要。只需使用
waitTime = currentSegment['wait']
只用
waitTime = currentSegment['wait']