0

我正在从带有 json 对象的数据集中读取数据,在数据集中,一些值具有 abcd\nabdc 格式。我使用了以下代码:

for line in open("c:\\dataset","r+").readlines():
       d= json.loads(line)
       str1 = d['strkey1']
       str1.replace('\n' , '')

但它无法取代。

4

2 回答 2

4
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
于 2013-04-24T07:58:57.317 回答
1

只需将您的代码更改为:

for line in open("c:\\dataset","r+").readlines():
       dict = json.loads(line)
       dict['strkey1'] = dict['strkey1'].replace('\n','')

这行得通,你的不是,因为字符串是不可变的(它们不能被改变),所以字符串方法返回一个新的字符串,(在这里你需要存储)

于 2013-04-24T08:12:45.570 回答