亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 JSON API 數據規范化為列

將 JSON API 數據規范化為列

ITMISS 2022-11-29 14:47:27
我正在嘗試從我們的 Hubspot CRM 數據庫中獲取數據并使用 pandas 將其轉換為數據框。我仍然是 python 的初學者,但我無法讓 json_normalize 工作。數據庫的輸出是這樣的 JSON 格式:{'archived': False, 'archived_at': None, 'associations': None, 'created_at': datetime.datetime(2019, 12, 21, 17, 56, 24, 739000, tzinfo=tzutc()), 'id': 'xxx', 'properties': {'createdate': '2019-12-21T17:56:24.739Z',                'email': '[email protected]',                'firstname': 'John',                'hs_object_id': 'xxx',                'lastmodifieddate': '2020-04-22T04:37:40.274Z',                'lastname': 'Hansen'}, 'updated_at': datetime.datetime(2020, 4, 22, 4, 37, 40, 274000, tzinfo=tzutc())}, {'archived': False, 'archived_at': None, 'associations': None, 'created_at': datetime.datetime(2019, 12, 21, 17, 52, 38, 485000, tzinfo=tzutc()), 'id': 'bbb', 'properties': {'createdate': '2019-12-21T17:52:38.485Z',                'email': '[email protected]',                'firstname': 'John2',                'hs_object_id': 'bbb',                'lastmodifieddate': '2020-05-19T07:18:28.384Z',                'lastname': 'Hansen2'}, 'updated_at': datetime.datetime(2020, 5, 19, 7, 18, 28, 384000, tzinfo=tzutc())}, {'archived': False, 'archived_at': None, 'associations': None,等嘗試使用此代碼將其放入數據框中:import hubspotimport pandas as pdimport jsonfrom pandas.io.json import json_normalizeimport osclient = hubspot.Client.create(api_key='################')all_contacts = contacts_client = client.crm.contacts.get_all()df=pd.io.json.json_normalize(all_contacts,'properties')df.headdf.to_csv ('All contacts.csv')但是我不斷收到無法解決的錯誤。我也試過pd.dataframe(all_contacts)和pf.dataframe.from_dict(all_contacts)
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

all_contacts 變量是一個類似字典的元素列表。因此,為了創建數據框,我使用列表理解來創建一個元組,該元組僅包含每個類似字典的元素的“屬性”。


import datetime

import pandas as pd

from dateutil.tz import tzutc


data = ({'archived': False,

         'archived_at': None,

         'associations': None,

         'created_at': datetime.datetime(2019, 12, 21, 17, 56, 24, 739000, tzinfo=tzutc()),

         'id': 'xxx',

         'properties': {'createdate': '2019-12-21T17:56:24.739Z',

                        'email': '[email protected]',

                        'firstname': 'John',

                        'hs_object_id': 'xxx',

                        'lastmodifieddate': '2020-04-22T04:37:40.274Z',

                        'lastname': 'Hansen'},

         'updated_at': datetime.datetime(2020, 4, 22, 4, 37, 40, 274000, tzinfo=tzutc())},

        {'archived': False,

         'archived_at': None,

         'associations': None,

         'created_at': datetime.datetime(2019, 12, 21, 17, 52, 38, 485000, tzinfo=tzutc()),

         'id': 'bbb',

         'properties': {

             'createdate': '2019-12-21T17:52:38.485Z',

             'email': '[email protected]',

             'firstname': 'John2',

             'hs_object_id': 'bbb',

             'lastmodifieddate': '2020-05-19T07:18:28.384Z',

             'lastname': 'Hansen2'},

         'updated_at': datetime.datetime(2020, 5, 19, 7, 18, 28, 384000, tzinfo=tzutc())})

df = pd.DataFrame([row['properties'] for row in data])

print(df)

輸出:


                 createdate            email  ...          lastmodifieddate lastname

0  2019-12-21T17:56:24.739Z  [email protected]  ...  2020-04-22T04:37:40.274Z   Hansen

1  2019-12-21T17:52:38.485Z       [email protected]  ...  2020-05-19T07:18:28.384Z  Hansen2


[2 rows x 6 columns]


查看完整回答
反對 回復 2022-11-29
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號