繁体   English   中英

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

[英]Lines disappeared after removing the last character of a string using Python

我想删除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)

我在available_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的最后一个字符?

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

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

如果字符串以空格或\\ r结尾,请使用以下命令进行清理: string.strip()

我希望它会有用。

如果你用的话会更好

tempstr = tempstr.rstrip(',\n')

比起容易出错的地方

tempstr = tempstr[:-1]

后一种变体除去任何字符,而前一种变体仅除去逗号或换行符,并且不留其他任何字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM