/ / при четене на json файл в python някои допълнителни unicode символи се появяват в данните - python, json, unicode

докато четете json файла в Python някои допълнителни символи на Unicode се появяват в данните - python, json, unicode

Трябва да получа данни от json файл, за да го изпратя в пост-заявката. За съжаление, когато прочетох файла, някои необяснени Unicode символи в началото

path = ".jsons_updated"
newpath = os.path.join(path, "Totem Plus eT 00078-20140224_060406.ord.txt")
file = open(newpath, "r")
#data = json.dumps(file.read())
data = file.read()
print("data= ", data)
file.close()

Данните във файла започват с това:

{"PriceTableHash": [{"Hash": ...

Получавам резултата:

data=  п»ї{"PriceTableHash": [{"Hash": ...

или в случай на data = json.dumps (file.read ())

data=  "u043fu00bbu0457{"PriceTableHash": [{

Така че моята молба не може да обработи тези данни. Нечетни символи са еднакви за всички файлове, които имам.

UPD: Ако копирам данни многократно в новия json или txt файл, проблемът изчезва. Но аз имам около 2,5 000 файла, така че това не е опция =)

Отговори:

1 за отговор № 1

Командата open(newpath, "r") отваря файла по подразбиране на системата викодиране (което може да е). Така че, когато четете кодирани данни от Unicode, това ще пречи на кодирането (така че вместо четенето на utf-8 кодирани данни с UTF-8 декодер, Python ще опита Cp-1250 или нещо подобно).

употреба codecs.open() вместо това се посочва правилното кодиране на данните (т.е. тази, която е била използвана, когато файловете са написани).

Нечетните байтове, които получавате, изглеждат като a Заглавна част на спецификацията, Може да искате да промените кода, който записва тези файлове, за да го пропуснете и да ви изпрати чист utf-8, Вижте също Четене на данни от Unicode файл с BOM символи в Python