import sys import json from src.articles.model import Article, FullArticleSchema from src.database import db_session from sqlalchemy.exc import IntegrityError if len(sys.argv) <= 1: raise Error("Kein Zieldateiname angegeben") def load_article(a): return FullArticleSchema().load(a[0]).data def load_section(s): return FullSectionSchema().load(s[0]).data file = open(sys.argv[1], "r") data=json.load(file) articles=None sections=None organizations=None if isinstace(data,dict): if data.has_key("articles"): articles=data["articles"] if data.has_key("sections"): sections=data["sections"] else: articles=data articles= map (load_article, articles) sections=map(load_section,sections) for a in articles: try: db_session.add(a) db_session.commit() except IntegrityError: db_session.rollback() finally: db_session.rollback() for s in sections: try: db_session.add(s) db_session.commit() except IntegrityError: db_session.rollback() finally: db_session.rollback() file.close()