В настоящее время у меня есть файл JSON, который я пытаюсь загрузить в python, однако из-за символов ударения я получаю ошибки.
Есть ли способ заменить символы ударения на обычные символы перед выполнением загрузки?
Я перепробовал все методы с кодировкой в UTF-8, основываясь на других предложениях.Например:
json.loads(line.decode("utf-8","ignore"))
или
with open("test.json", encoding='utf-8') as data_file:
data = json.load(data_file)
Поскольку ни одна из этих опций не сработала, я хотел посмотреть, есть ли способ заменить символ ударения.
Примеркод:
import csv
import json
infile = open("infile.json","r")
outfile = open("outfile.csv", "w")
writer = csv.writer(outfile)
readin = json.loads(infile.read())
count = 1
for row in readin["entry1"]["entry2"]:
if count == 1:
writer.writerow(row.keys())
count = count + 1
writer.writerow(row.values())
outfile.close()
Вышеуказанное работает, ТОЛЬКО если нет абсолютно никаких символов акцента.
образец JSON-файла:
{
"entry1": {
"entry2": [
{
"firstName": "Sam",
"lastName": "XXX"
},
{
"firstName": "Jose",
"lastName": "Peña"
}
]
}
}
Мне бы хотелось, чтобы мой выходной файл выглядел следующим образом:
firstName, lastName
Sam,XXXX
Jose,Peña
Как вы можете видеть, есть ударение - что япродолжаю получать ошибку с.Ниже приведен пример ошибки:
Traceback (most recent call last):
File "/Users/Mac/Desktop/fileconversion.py", line 8, in <module>
readin = json.loads(infile.read())
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
**UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1868: ordinal not in range(128)**
Благодарим за любую помощь.
Спасибо.