порядок данных искажен в firefox - PullRequest
0 голосов
/ 14 апреля 2020
    my_list=[{'36': 478.0, '36.5': 440.0,'37.5': 490.0, '38': 478.0,'38.5': 425.0,'39': 388.0,
  '40': 320.0,
  '40.5': 292.0,
  '41': 289.0,
  '42': 288.0,
  '42.5': 290.0,
  '43': 289.0,
  '44': 275.0,
  '44.5': 272.0,
  '45': 270.0,
  '45.5': 281.0,
  '46': 275.0,
  '47': 285.0,
  '47.5': 265.0,
  '48': 310.0,
  '48.5': 304.0,
  '49': '',
  '49.5': 295.0,
  '50.5': 269.0,
  '51.5': 337.0,
  '52.5': 285.0},
 {'40': 271.0,
  '40.5': 254.0,
  '41': 234.0,
  '42': 239.0,
  '42.5': 230.0,
  '43': 230.0,
  '44': 225.0,
  '44.5': 235.0,
  '45': 235.0,
  '45.5': 246.0,
  '46': 235.0,
  '47': 244.0,
  '47.5': 238.0,
  '48': '',
  '48.5': 240.0,
  '49': '',
  '49.5': 245.0,
  '50.5': 220.0,
  '51.5': 235.0,
  '52.5': 245.0},
 {'37.5': 225.0,
  '38': 223.0,
  '38.5': 230.0,
  '39': 226.0,
  '40': 222.0,
  '40.5': 229.0,
  '41': 230.0,
  '42': 223.0,
  '42.5': 229.0,
  '43': 230.0,
  '44': 235.0,
  '44.5': 238.0,
  '45': 234.0,
  '45.5': 240.0,
  '46': 231.0,
  '47': 238.0,
  '47.5': 240.0,
  '48': 241.0,
  '48.5': 245.0,
  '49': 254.0,
  '49.5': 690.0,
  '50': 240.0,
  '50.5': 10938327.0,
  '51': 235.0}]


import json
with open('Output.json', 'w') as fout:
    json.dump(my_list , fout)

, когда я открыл файл в Firefox, он переставил элементы в другом порядке, чем я хотел (указан в python). Я попытался использовать

[dict(sorted(d.items())) for d in my_list] 

, затем записать в файл, но это не решает, когда я открываю в текстовом редакторе, это правильно, это опция firefox? есть ли способ просмотреть его в Firefox "нормально" в моем заказе?

Примечание: я использую python3 .7.5

1 Ответ

0 голосов
/ 14 апреля 2020

Кажется, проблема в том, что средство просмотра Firefox JSON по умолчанию "довольно печатает" JSON, по крайней мере в версии 74, которую я использую.

Похоже, что симпатичный принтер firefox json по-разному обрабатывает строковые версии целых и десятичных чисел и помещает десятичные значения после целых чисел, поэтому они выглядят не по порядку.

JSON viewer в Firefox 74 предоставляет вкладку, позволяющую получить доступ к данным в необработанном виде, в котором отображаются правильно упорядоченные данные.

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

my_list = [{'36.0': 478.0, '36.5': 440.0,'37.5': 490.0, '38.0': 478.0}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...