我正在从带有 json 对象的数据集中读取数据,在数据集中,一些值具有 abcd\nabdc 格式。我使用了以下代码:
for line in open("c:\\dataset","r+").readlines():
d= json.loads(line)
str1 = d['strkey1']
str1.replace('\n' , '')
但它无法取代。
d['strkey1'] = d['strkey1'].replace('\n', '')
字符串是不可变的,因此字符串方法返回新字符串,而不是修改原始字符串。
还:
for line in open("c:\\dataset","r+"):
就足够了,您不需要.readlines()
在遍历每一行之前将整个文件放入内存。但这还不够,您需要记住关闭文件,一条with
语句会为您处理:
with open("c:\\dataset","r+") as f:
for line in f:
# do stuff
只需将您的代码更改为:
for line in open("c:\\dataset","r+").readlines():
dict = json.loads(line)
dict['strkey1'] = dict['strkey1'].replace('\n','')
这行得通,你的不是,因为字符串是不可变的(它们不能被改变),所以字符串方法返回一个新的字符串,(在这里你需要存储)