我正在用python阅读一个巨大的geojson文件。每当我打印一组坐标时,即使存在于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显然很弱。
我认为decimal library正是您想要的。
我不知道您的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