json_normalize: список атрибутов obj не имеет атрибута «значение» - PullRequest
1 голос
/ 05 января 2020

Я работаю с JSON данными из ответа API. Я использую python для отправки запроса GET с данными по адресу. Я хочу захватить ответ JSON и преобразовать его в кадр данных.

В настоящее время я фиксирую ответы в списке словарей. Я могу успешно использовать json_normalize для r. json или sample_list [0], но не могу нормализовать весь список. Я пытаюсь избежать создания и добавления df в l oop для производительности.

sample_list = []
for index, row in sample_df.iterrows():
    sample_address = json.dumps(
        {       
            "records": [
                {
                    "attributes": {
                    "OBJECTID": row['OBJECTID'],
                    "Address": row['Address'],
                    "City": row['City'],
                    "Region": row['Region'],
                    "Postal": row['Postal']
                }
                }
            ]
        }
        )

    r = re.get(url, params = { 'addresses': sample_address, 'f':'pjson'},verify = False)

    sample_list.append(r.json()['locations'])

###The Output of r.json for one address

{'locations': [{'address': '2600 Benjamin Franklin Pkwy, Philadelphia, Pennsylvania, 19130',..., 'score': 100}], 'spatialReference': {'latestWkid': 4326, 'wkid': 4326}}

###The sample_list of multiple r.json output
[[{'address': '520 Chestnut St, Philadelphia, Pennsylvania, 19106',
   'attributes': {'AddNum': '520',
   ...},
   'location': {'x': -75.14971142634045, 'y': 39.94905972672609},
   'score': 100}],
 [{'address': '2600 Benjamin Franklin Pkwy, Philadelphia, Pennsylvania, 19130',
   'attributes': {'AddNum': '2600',
    ...,
   'location': {'x': -75.17923104567541, 'y': 39.96474536190999},
   'score': 100}]]

1 Ответ

0 голосов
/ 05 января 2020

В sample_list.append (r. json () ['location']) просто попробуйте «json_normalize» вместо «r. json».

...