Good Day, Python community
I am trying to create a script to change THIS JSON data structure:
TO THIS JSON STRUCTURE:
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:
The OUTPUT is:
Please, give me at least good advice.
Best wishes,
Sibdar
I am trying to create a script to change THIS JSON data structure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
{ "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 } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
{ "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 } } ] } |
and would like to ask your help. At least, maybe you can point me in the right direction.
Here is my attempt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
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) |
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