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 nothingand 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
