Процесс ETL для глубоко вложенного объекта JSON - PullRequest
0 голосов
/ 14 июня 2019

Я работаю с вызовом API, чтобы получить контактную информацию из CRM по продажам / маркетингу на Postgres Server. Я создал скрипт Python, который работает, но я убежден, что есть гораздо лучший способ сделать это, который я, вероятно, упускаю из виду.

Я создал схему, которая учитывает все поля, которые могут быть возвращены объектом из вызова API с использованием SQLAlchemy.

Затем я написал скрипт на python для вызовов API. По возвращении скрипт перебирает каждый объект и ищет все свойства. Если объект имеет свойство, оно записывается. В противном случае свойство записывается как тип None.

for i in API.response:
  id = i['id'] # objects always return an ID

# Use method below for each possible attribute that could be 
# returned with an object (max ~200 properties).

  try:
    foo = i['contact_attribute'] 
  except:
    foo = None

  insert_statement = Class.insert.values(id, foo)

  db.connect().execute(insert_statement)

Программа работает, но я ищу отзывы, чтобы улучшить работу ETL. Любая обратная связь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...