Недостающие цифры числа с плавающей точкой при печати данных geo json на консоль - PullRequest
1 голос
/ 06 марта 2020

Я читаю огромный гео json файл в python. Всякий раз, когда я печатаю набор координат, последнее десятичное число удаляется, даже если оно присутствует в файле json.

Например:

В файле json:

[110.888769531250034,19.991943359375]

При выводе на консоль:

[110.88876953125003,19.991943359375]

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

import json

with open('world-json.json', encoding='UTF-8') as f:
    data = json.load(f)


for i in data['features']:
    name = i.get('properties').get('ADMIN')
    coordinates = i.get('geometry').get('coordinates')

    if name == 'China':
        for i in coordinates:
            for p in i:
                for z in p:
                    print(z)

Я пытался выяснить, почему это происходит, но мой google-fu явно слаб.

1 Ответ

0 голосов
/ 06 марта 2020

Я думаю десятичная библиотека - это то, что вы ищете.


Я не знаю, как выглядит ваш json, но предположим, что код будет таким, как показано ниже .

from decimal import * # ★ New line
import json

with open('world-json.json', encoding='UTF-8') as f:
  data = json.load(f)


for i in data['features']:
  name = i.get('properties').get('ADMIN')
  coordinates = map(Decimal, i.get('geometry').get('coordinates')) # ★ Changed line

  if name == 'China':
    for i in coordinates:
      for p in i:
        for z in p:
          print(str(z)) # ★ Changed line
...