从Python字符串中删除字符串引号,以便在json.dump()之后引号获胜';不显示在JSON文件中
我有一本包含另一本词典的词典。所以在内部字典中有一个条目系数从Python字符串中删除字符串引号,以便在json.dump()之后引号获胜';不显示在JSON文件中,python,json,python-3.x,Python,Json,Python 3.x,我有一本包含另一本词典的词典。所以在内部字典中有一个条目系数 bias,t1,t2 = data.rpartition(")") t1,t2,bias = bias.rpartition(",") resolution,t1,t1 = data.rpartition(")") t1,t2,resolution = resolution.rpartition("(") resolution,t1,t2 = resolution.rpartition(",") coeff = "[ " + st
bias,t1,t2 = data.rpartition(")")
t1,t2,bias = bias.rpartition(",")
resolution,t1,t1 = data.rpartition(")")
t1,t2,resolution = resolution.rpartition("(")
resolution,t1,t2 = resolution.rpartition(",")
coeff = "[ " + str(bias) + ", " + str(resolution) + " ]"
dict = {"a" : "somedata", "coef" : coeff}
我在这里面临两个问题:
1。在使用json.dump()时,我当前得到了“coeffts”:“[0,1]”,
。我希望输出为“coeffts”:[0.0,1.0],
,不带引号。我尝试使用coeff.replace
和coeff.strip
,但输出仍然相同
2.我需要带小数点的值偏差和分辨率。使用rpartition时,结果字符串可能没有小数点。如果没有,我需要它有一个小数点
例如:如果我从rpartition得到的是1,我需要它是1.0。如果我从rpartition得到的是0.045,我需要它是相同的
这应该管用
coeff = [float(bias),float(resolution)]
也像克劳斯说的,把你的字典改成这个
dict = {"a" : "somedata", "coef" : coeff}
第二个问题可以使用字符串格式解决
coeff = ("[ %2.1f, %2.1f ]" % (float(bias),float(resolution)))
现在,浮点值可以放在字符串本身中,或者至少用浮点打印
对于第一个问题,我找到的唯一解决方案是写入临时文件,然后使用readline()逐行读取该文件。然后使用replace()替换引号并将其写入最终文件
fin = open(TEMP_JSON_FILE)
fout = open(JSON_FILE, "w+")
line_f = fin.readline()
x1 = '"['
while line_f:
if x1 in line_f:
line_f = line_f.replace('\"[', '[').replace(']\"', ']')
fout.write(line_f)
else:
fout.write(line_f)
line_f = fin.readline()
fin.close()
fout.close()
这将从JSON文件中删除字符串引号。这可能不是最有效的方法,但到目前为止,这是我能找到的最好的方法 不要构造字符串,而是将值添加到列表中。另外,你的口述应该使用
:
而不是=
。对不起,我打错了。它是:
,而不是=
。无论如何,谢谢。这不是关于是否“有引用”,而是关于类型。在源代码中,“[1,2,3]”
是一个字符串,[1,2,3]
是一个列表。至于你对Paulo44答案的评论,我将重复他所说的:JSON格式没有任何区别。我强烈建议回去学习更多Python的基础知识。@MathewThomas我还不确定你所说的修复它是什么意思。删除引号会改变JSON的语义,对吗?bias
和resolution
的类型是什么?@AlexanderCécile到目前为止,我有一个字符串变量,我需要在变量之间用空格将它封装在[and]之间,在转储到json时,我需要它是float,在同一行上,不带引号。如果我将它添加为float,那么在json中它将出现在多行中。这就是需要解决的问题现在输出以不同的行出现,我得到的是“coeffts”:[
`0.0,`1.0
`],`coeffts:[在一行上,在下一行上有偏差,在下一行上有分辨率,最后]在最后一行上。我希望它在同一行中,在[
和第一个值之间有一个空格。@paulo44 JSON的格式没有任何区别。@KlausD。你能帮我修复它吗?