Last active
May 19, 2022 07:23
-
-
Save jtprogru/adf67c1f552b6f0149a554555aeaaa8f to your computer and use it in GitHub Desktop.
Данная задача ориентирована на реальную работу с данными в формате JSON. Для решения мы будем использовать справочник ОКВЭД (Общероссийский классификатор видов экономической деятельности), который был размещен на web-портале data.gov.ru.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"comment": "Данные в сыром виде доступны для скачивания по адресу", | |
"url": "https://raw.githubusercontent.com/semyon-dev/stepik-go/master/work_with_json/data-20190514T0100.json" | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"encoding/json" | |
"fmt" | |
"net/http" | |
) | |
/* | |
Данная задача ориентирована на реальную работу с данными в формате JSON. Для решения мы будем | |
использовать справочник ОКВЭД (Общероссийский классификатор видов экономической деятельности), | |
который был размещен на web-портале data.gov.ru. | |
Необходимая вам информация о структуре данных содержится в файле structure-20190514T0000.json, | |
а сами данные, которые вам потребуется декодировать, содержатся в файле data-20190514T0100.json. | |
Файлы размещены в https://github.com/semyon-dev/stepik-go/tree/master/work_with_json. | |
Для того, чтобы показать, что вы действительно смогли декодировать документ вам необходимо в | |
качестве ответа записать сумму полей global_id всех элементов, закодированных в файле. | |
*/ | |
type Item struct { | |
SystemObjectId string `json:"system_object_id"` | |
Kod string `json:"Kod"` | |
IsDeleted int `json:"is_deleted"` | |
SignatureDate string `json:"signature_date"` | |
Nomdescr string `json:"Nomdescr"` | |
GlobalId int `json:"global_id"` | |
Idx string `json:"Idx"` | |
Razdel string `json:"Razdel"` | |
Name string `json:"Name"` | |
} | |
func main() { | |
const URL = "https://raw.githubusercontent.com/semyon-dev/stepik-go/master/work_with_json/data-20190514T0100.json" | |
rs, err := http.Get(URL) | |
if err != nil { | |
panic(err) | |
} | |
defer rs.Body.Close() | |
dec := json.NewDecoder(rs.Body) | |
var items []Item | |
err = dec.Decode(&items) | |
if err != nil { | |
panic(err) | |
} | |
sum := 0 | |
for _, x := range items { | |
sum += x.GlobalId | |
} | |
fmt.Println(sum) | |
// 763804981288 | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"minItems":1, | |
"$schema":"http://json-schema.org/draft-04/schema#", | |
"description":"Общероссийский классификатор видов экономической деятельности ОКВЭД 2 (ОК 029-2014 (КДЕС Ред. 2))", | |
"title":"Общероссийский классификатор видов экономической деятельности ОКВЭД 2 (ОК 029-2014 (КДЕС Ред. 2))", | |
"type":"array", | |
"items":{ | |
"description":"Общероссийский классификатор видов экономической деятельности ОКВЭД 2 (ОК 029-2014 (КДЕС Ред. 2))", | |
"type":"object", | |
"properties":{ | |
"system_object_id":{ | |
"description":"system_object_id", | |
"type":"STRING" | |
},"Kod":{ | |
"description":"Код позиции", | |
"type":"STRING" | |
},"is_deleted":{ | |
"description":"is_deleted", | |
"type":"NUMBER" | |
},"signature_date":{ | |
"description":"signature_date", | |
"type":"STRING" | |
},"Nomdescr":{ | |
"description":"Описание", | |
"type":"STRING" | |
},"global_id":{ | |
"description":"global_id", | |
"type":"NUMBER" | |
},"Idx":{ | |
"description":"Индекс", | |
"type":"STRING" | |
},"Razdel":{ | |
"description":"Код раздела", | |
"type":"STRING" | |
},"Name":{ | |
"description":"Наименование", | |
"type":"STRING" | |
} | |
},"required":["is_deleted","global_id","Idx"] | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment