Daha çox

Bir FeatureCollection-dan / json faylına necə oxuyursunuz / yazırsınız?


Bir json FeatureCollection-da oxumağa çalışıram (geojson 1.3.1) Python (2.7), bəzi xüsusiyyətlər əlavə edin və yenidən bir json sənədinə (və ya simli) yazın.

Faylı oxuya və xassələri dəyişdirə bilərəm, amma 2 içəridəki FeatureCollection obyektləri ilə bitirəm:

{"type": "FeatureCollection", "features": {"type": "FeatureCollection", "features": [{"həndəsə": {"type": "polygon", "coordinates": [[]]} , "type": "Feature", "properties": {"gval": 1.0, "hektar": 0.218681933167, "xid": 0, "id": 1.0, "area": ​​2186.81933167}}]}}

Və FeatureCollectionumu səhv yaratdığımı düşündüm:

path = r'd:  temp  test.json 'data_file olaraq açıq (path) ilə: data = json.load (data_file) print data feature_collection = FeatureCollection (data) print feature_collection

Thexüsusiyyət_toplamaiç içə xüsusiyyətlərlə başa çatır, buna görə də ortaya çıxan geojson.dumps FeatureCollection iç içədir
{"xüsusiyyətləri": {"xüsusiyyətləri": [{"həndəsə":

Onu sındırmağın bir neçə yolu haqqında düşünə bilərəm, amma o FeatureCollection-u yaratmağın düzgün yolu nədir? Xüsusiyyət atributlarını dəyişdirin və sonra yenidən bir fayla yazın?

Test.json sənədinin məzmunu (mənfi koordinat dəyərləri):

{"type": "FeatureCollection", "features": [{"həndəsə": {"type": "Polygon", "coordinates": []}, "type": "Feature", "properties": {" area ": 2186.81933167," id ": 1.0," xid ": 0," gval ": 1.0}}]}

Geojson versiyası:

Metadata-Versiya: 2.0 Adı: geojson Versiyası: 1.3.1 Xülasə: GeoJSON üçün Python bağlamaları və yardım proqramları Əsas səhifə: https://github.com/frewsxcv/python-geojson Müəllif: Corey Farwell Müəllif-e-poçt: coreyf @ rwell. org Lisenziyası: BSD Yer: c:  python27  arcgis10.2  lib  site-packages Tələb olunur: setuptools

Sənin nədirXüsusiyyətCollectionetiraz? Bu, yaratdığınız xüsusi bir sinifdir və ya açıq bir mənbə python paketindənmi? Xüsusiyyət kolleksiyasındakı JSON obyektləri, asanlıqla dəyişdirilə bilmək üçün piton lüğətləri olur.

Məsələn, dəyişdirmək istəsənizgvalsahə dəyərini bu kimi xüsusiyyətlərdən təkrarlaya bilərsiniz:

məlumatdakı xüsusiyyət üçün ['xüsusiyyətləri'] ['xüsusiyyətləri']: # gval atribut xüsusiyyətini dəyişdirin ['xassələr'] ['gval'] = 3.5 # İlk xüsusiyyəti indeks xüsusiyyəti1 = data ['xüsusiyyətləri' ilə də əldə edə bilərsiniz ] ['xüsusiyyətləri'] [0]

Dəyişikliklərinizi json-a geri qaytarmaq üçün yalnız .json faylına qaytarmaq üçün json.dump () zəng edə bilərsiniz.


Geojson kitabxanasından istifadə etməyən bir gediş-gəliş tənzimləmə nümunəsi.

os, json ilə açıq (os.environ ['HOME'] + '/ Desktop / f.json', 'r') data_file olaraq idxal et: data = json.load (data_file) çap məlumatları ['xüsusiyyətləri'] [0] ['xassələr'] ['gval'] məlumatlar ['xüsusiyyətlər'] [0] ['xassələr'] ['gval'] = 2.2 məlumat çapı ['xüsusiyyətlər'] [0] ['xassələr'] ['gval' ] outfile = open (os.environ ['HOME'] + '/ Desktop / fnew.json', 'w +') outfile.write (json.dumps (data))

Budur test JSON faylı (f.json)

{"xüsusiyyətləri": [{"həndəsə": {"koordinatlar": [[]], "tip": "Çoxbucaqlı"}, "xassələr": {"sahə": 2186.81933167, "gval": 2.2, "hektar" : 0.218681933167, "id": 1.0, "xid": 0}, "type": "Feature"}], "type": "FeatureCollection"}

nəticələr:

bash: 1.0 bash: 2.2

Geojson olmayan cavabı qəbul etdim, amma geojson FeatureCollection istifadə edərək mənim üçün işləyən şey budur:

geojson'dan idxal sys idxal Feature, Point, FeatureCollection, Polygon import json import geojson from pprint import pprint #print (sys.version) path = r'd:  temp  test.json 'with open (path,' r ') as data_file: data = json.load (data_file) feature_collection = FeatureCollection (data ['xüsusiyyətləri']) print feature_collection


Videoya baxın: Daanveer Pilla Zamindar Hindi Dubbed Full Movie. Nani, Haripriya, Bindu Madhavi (Oktyabr 2021).