Good Day, Python community
I am trying to create a script to change THIS JSON data structure:
and would like to ask your help. At least, maybe you can point me in the right direction.
Here is my attempt:
Please, give me at least good advice.
Best wishes,
Sibdar
I am trying to create a script to change THIS JSON data structure:
{ "16bec99d-a13e-4a21-a761-f673631b6060": { "ImageName": "chp/chp08.png", "Fill": 844168280, "Line": -11469736, "ID": "16bec99d-a13e-4a21-a761-f673631b6060", "ParentID": "94021e84-2a1e-440d-9f37-b349fa2cd0d8", "Name": "198008", "IsPolygon": true, "R": 0, "Lat": [ 58.496235, 58.496299, 58.49533, 58.495213 ], "Lng": [ 103.794173, 103.797618, 103.797715, 103.796126 ], "Holes": null }, "8dc91f95-666e-4137-b29b-b12dbbddbdbe": { "ImageName": "chp/chp08.png", "Fill": 844168280, "Line": -11469736, "ID": "8dc91f95-666e-4137-b29b-b12dbbddbdbe", "ParentID": "94021e84-2a1e-440d-9f37-b349fa2cd0d8", "Name": "198005", "IsPolygon": true, "R": 0, "Lat": [ 58.484494, 58.484392, 58.483932, 58.484163 ], "Lng": [ 103.625914, 103.626353, 103.625889, 103.625286 ], "Holes": null } }TO THIS JSON STRUCTURE:
{ "features": [ { "geometry": { "rings": [ [ [103.794173,58.496235], [103.797618,58.496299], [103.797715,58.49533], [103.796126,58.495213] ] ], }, "attributes": { "Name": "123456", "ID": "16bec99d-a13e-4a21-a761-f673631b6060", "Fill": 844168280, "Line": -11469736 } }, { "geometry": { "rings": [ [ [103.625914,58.484494], [103.626353,58.484392], [103.625889,58.483932], [103.625286,58.484163] ] ], }, "attributes": { "Name": "689651", "ID": "8dc91f95-666e-4137-b29b-b12dbbddbdbe", "Fill": 844168280, "Line": -11469736 } } ] }I am newbie in Python (and in programming in general), so I spent 3 days literally for nothing
and would like to ask your help. At least, maybe you can point me in the right direction.
Here is my attempt:
import json data = {'16bec99d-a13e-4a21-a761-f673631b6060': {'ImageName': 'chp/chp08.png', 'Fill': 844168280, 'Line': -11469736, 'ID': '16bec99d-a13e-4a21-a761-f673631b6060', 'ParentID': '94021e84-2a1e-440d-9f37-b349fa2cd0d8', 'Name': '198008', 'IsPolygon': True, 'R': 0, 'Lat': [58.496235, 58.496299, 58.49533, 58.495213], 'Lng': [103.794173, 103.797618, 103.797715, 103.796126], 'Holes': None}, '8dc91f95-666e-4137-b29b-b12dbbddbdbe': {'ImageName': 'chp/chp08.png', 'Fill': 844168280, 'Line': -11469736, 'ID': '8dc91f95-666e-4137-b29b-b12dbbddbdbe', 'ParentID': '94021e84-2a1e-440d-9f37-b349fa2cd0d8', 'Name': '198005', 'IsPolygon': True, 'R': 0, 'Lat': [58.484494, 58.484392, 58.483932, 58.484163], 'Lng': [103.625914, 103.626353, 103.625889, 103.625286], 'Holes': None}} for d in data: for x,y in zip(data[d]['Lat'],data[d]['Lng']): arcgisJSON = { "features": [ { "geometry": { "rings": [[ x,y ]] }, "attributes": {data[d]['Name'],data[d]['ID'],data[d]['Fill'],data[d]['Line']} } ] } print(arcgisJSON)The OUTPUT is:
Output:{'features':
[
{'geometry':
{'rings': [[58.484163, 103.625286]]},
'attributes': {
-11469736,
'198005',
844168280,
'8dc91f95-666e-4137-b29b-b12dbbddbdbe'}}]}
My loop gets just one object from data, creates just one array in 'rings' and I can not fetch needed key-value pairs in 'attributes' (just values). Please, give me at least good advice.
Best wishes,
Sibdar