从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。你能帮我修复它吗?