使用Python删除字符串的最后一个字符后,行消失
我想删除unfacture.json中的最后一个逗号,并用方括号替换它 .json(文件末尾有一个空行) 但是当我运行下面的代码时,它删除了原始文件中的68行,并成功地在末尾添加了结束方括号使用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:
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]