Извлечение элементов из уникальных идентификаторов в файл JSON - PullRequest
1 голос
/ 16 июня 2019

Я хочу извлечь серию элементов из файла json, в котором каждый элемент указан под уникальным идентификатором, и записать их в набор данных в Stata с помощью команды от сообщества *1003* insheetjson.

Данные выглядят следующим образом:

{
    "4f1ac817b819f25efd0000c8": {
        "name": "Carmen Fraga Estévez",
        "country": "es",
        "group": "epp",
        "lqdn": "https://memopol.lqdn.fr/europe/parliament/deputy_from_ep_id/1993/",
        "agw": null,
        "email": "carmen.fragaestevez@europarl.europa.eu",
        "firstname": "Carmen",
        "surname": "Fraga Estévez",
        "title": "Ms",
        "salutation": "Dear Ms Fraga Estévez,",
        "parltrack_id": 1993,
        "active": true,
        "committees": [
            {
                "id": "pech",
                "role": "Member"
            }
        ],
        "urls": {
            "rss": "http://www.europarl.europa.eu/rss/mep/carmen.fragaestevez/en.xml",
            "europarl": "http://www.europarl.europa.eu/meps/en/1993/_history.html",
            "photo": "http://www.europarl.europa.eu/mepphoto/1993.jpg"
        },
        "constituency": "es_pp"
 }
}

Я хочу извлечь name, country, и, если есть комитет, id и role,

Каждый элемент в файле json имеет уникальный идентификационный номер (но каждый начинается с чего-то вроде 4f1ac817b819f25efd0000c8).

Я пробовал следующий код в Stata:

gen str240 name=""
gen str240 country=""
gen str240 id=""
gen str240 role=""

insheetjson name country id role using mep.json, col("name" "country" "id" "role")

Однако, когда я запускаю этот код, я получаю следующий код ошибки в Stata:

{err: Invalid column name/selector 'name'. (Possible name candidates are: "4f1ac817b819f25efd0000c8" "4f1ac789b819f25efd000092"

И затем он продолжает перечислять все уникальные идентификационные номера в файле json.

1 Ответ

1 голос
/ 18 июня 2019

Для вашего примера работает следующее:

clear
set obs 1

generate str240 name=""
generate str240 country=""
generate str240 id=""
generate str240 role=""

insheetjson name ///
            country ///
            id ///
            role ///
            using mep.json, ///
            col("4f1ac817b819f25efd0000c8:name" ///
                "4f1ac817b819f25efd0000c8:country" ///
                "4f1ac817b819f25efd0000c8:committees:1:id" ///
                "4f1ac817b819f25efd0000c8:committees:1:role")

compress

list

     +------------------------------------------------+
     |                 name   country     id     role |
     |------------------------------------------------|
  1. | Carmen Fraga Estévez        es   pech   Member |
     +------------------------------------------------+
...