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

时间:2015-11-08 09:05:07

标签: python json file character

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

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

...
{
"Q1":"1242",
"Q1":"14336",
"Q2":"13210",
"Q3":"11855",
"Q4":"11496",
"SubmitID":103, "Worksheet":5, "UserID":75},
{
"Q2":"13210",
"Q2":"11110",
"SubmitID":104, "Worksheet":5, "UserID":75},

但是当我运行以下代码时,它删除了原始文件的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)

我在Useful_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"}]

如何只删除imperfect.json的最后一个字符?

2 个答案:

答案 0 :(得分:0)

如果您只想删除添加tempstr = tempstr + '}]'的最后一个字符?

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

如果字符串以空格结尾或\ r,...用以下内容清除:string.strip()

我希望它会有用。

答案 1 :(得分:0)

如果你使用

会更好
tempstr = tempstr.rstrip(',\n')

这比

更容易出错
tempstr = tempstr[:-1]

后一种变体剥离任何字符,而前者只删除逗号或换行符,并留下任何其他字符。

相关问题