diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2019-07-30 21:29:39 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-07-30 21:29:39 -0700 |
commit | 59489a56ec7032dca24d1bf534d52bb514bbbe77 (patch) | |
tree | 4107bfafbcf956e357eabb6745e8568bf8f1c9e5 | |
parent | 3200e368ea315143e4c9574a4915a1c5542b1418 (diff) | |
download | chocula-59489a56ec7032dca24d1bf534d52bb514bbbe77.tar.gz chocula-59489a56ec7032dca24d1bf534d52bb514bbbe77.zip |
chocula: json export
-rwxr-xr-x | chocula.py | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -14,6 +14,7 @@ Commands: everything init_db summarize + export index_doaj index_road @@ -1206,6 +1207,19 @@ class ChoculaDatabase(): self.summarize(args) print("### Done with everything!") + def export(self, args): + def dict_factory(cursor, row): + d = {} + for idx, col in enumerate(cursor.description): + d[col[0]] = row[idx] + return d + counts = Counter() + self.db.row_factory = dict_factory + self.c = self.db.cursor() + for row in self.c.execute('SELECT * FROM journal'): + print(json.dumps(row)) + counts['total'] += 1 + def init_db(self, args): print("### Creating Database...") self.db.executescript(""" @@ -1240,6 +1254,9 @@ def main(): sub = subparsers.add_parser('summarize') sub.set_defaults(func='summarize') + sub = subparsers.add_parser('export') + sub.set_defaults(func='export') + # TODO: 'jurn' for ind in ('doaj', 'road', 'crossref', 'entrez', 'norwegian', 'szczepanski', 'ezb', 'gold_oa', 'wikidata', 'openapc'): sub = subparsers.add_parser('index_{}'.format(ind)) |