Как исправить AttributeError: у объекта «list» нет атрибута «replace», когда я пытаюсь заменить какой-либо текст в чтении csv - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь заменить текст в csv read на некоторый словарь данных, но я получил ошибку.

import csv

dataset = open('../sentimenprabowo.csv', 'r')
sentiment = csv.reader(dataset, delimiter=',')

newDok = open('../sentimenprabowopreproses.csv', 'w')
save = csv.writer(newDok)

data= open("convertcsv.json", "r")
APPOSTOPHES=data.read()

new_sentence = []
for row in sentiment:     
    print(row)
    for candidate_replacement in APPOSTOPHES:                
        if candidate_replacement in row:            
            #print(candidate_replacement)
            row = row.replace(candidate_replacement, APPOSTOPHES[candidate_replacement])
    new_sentence.append(row)
rfrm = "".join(new_sentence)
print(rfrm)

Я надеюсь, что это может быть заменить весь текст в моем CSV, который тот же текст со словарем данных (исправление орфографии).

но результат - ошибка:

  File "readdata.py", line 45, in <module>
    row = row.replace(candidate_replacement, APPOSTOPHES[candidate_replacement])
AttributeError: 'list' object has no attribute 'replace'

помогите мне, пожалуйста ...

это мой файл convertcsv.json:

{"@":"di","ababil":"abg labil","abis":"habis","acc":"accord","ad":"ada","adlah":"adalah"}

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Как говорит ошибка, ваша строка является списком и не имеет метода замены.Вы можете преобразовать его в строку замены, как вы хотите, а затем снова привести к массиву:

row = str(row).replace(candidate_replacement, APPOSTOPHES[candidate_replacement]).split(',')
0 голосов
/ 10 апреля 2019

Вы можете сделать это с помощью сравнения списков

использовать это

for r in range(len(row)):
    if row[r] == candidate_replacement:
        row[r] = APPOSTOPHES[candidate_replacement]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...