使用Python删除字符串的最后一个字符后,行消失

使用Python删除字符串的最后一个字符后,行消失,python,json,file,character,Python,Json,File,Character,我想删除unfacture.json中的最后一个逗号,并用方括号替换它 .json(文件末尾有一个空行) 但是当我运行下面的代码时,它删除了原始文件中的68行,并成功地在末尾添加了结束方括号 f2 = open('imperfect.json') tempstr = f2.read() tempstr = tempstr[:-1] tempstr = tempstr + '}]' with open('useful_input.json', 'w') as perfect_file:

我想删除unfacture.json中的最后一个逗号,并用方括号替换它

.json(文件末尾有一个空行)

但是当我运行下面的代码时,它删除了原始文件中的68行,并成功地在末尾添加了结束方括号

f2 = open('imperfect.json')

tempstr = f2.read()
tempstr = tempstr[:-1]
tempstr = tempstr + '}]'

with open('useful_input.json', 'w') as perfect_file:
   perfect_file.writelines(tempstr)
我在有用的_input.json中得到了什么

...
{
"Q1":"1629",
"Q2":"1950",
"Q3":"0116",
"Q4":"616",
"SubmitID":91, "Worksheet":4, "UserID":72},
{
"Q4":"0616",
"Q3":"0117",
"SubmitID":92, "Worksheet":4, "UserID":72},
{
"Q1":"14336",
"Q2":"11110"}]

如何仅删除unfacture.json的最后一个字符?

如果要仅删除最后一个字符,为什么要添加
tempstr=tempstr+'}]

要仅删除字符串中的最后一个字符,只需使用
string[:-1]

如果字符串以空格或结尾,\r。。。用:
string.strip()清洁它。


我希望它会有用。

如果你用它会更好

tempstr = tempstr.rstrip(',\n')
这比以前更不容易出错

tempstr = tempstr[:-1]

后一种变体去掉任何字符,而前一种变体只去掉逗号或换行符,而只留下任何其他字符。

writelines
用于字符串序列。你试过写吗?我刚试过,它在我的Ubuntu 14.04系统上给出了相同的结果,用Python 2我得到了一个正确的结果(以
UserID:75},}]
)-您使用的是什么操作系统和Python版本?您的代码应该可以正常工作。您确定阅读的是正确的
unfacture.json
文件吗?请记住
open('unfacture.json'))
将在您当前的工作目录中查找该文件。输出与输入有不同的submitId、worksheet和userid值。-@AnthonyKong的想法看起来不错。
tempstr = tempstr[:-1]