Fixed error handling
[dmarc.git] / write-to-database.ipynb
index 61cab594b3e23feffecea8387ac5754fe0140535..331d569fa7000155053a444936b8df04a42c8406 100644 (file)
     "              'pg_type': 'varchar'}\n",
     "             for name in xpath_of(root2)\n",
     "             if 'record' in name})\n",
-    "field_maps['./report_metadata/date_range/begin']['pg_type'] = 'timestamp'\n",
-    "field_maps['./report_metadata/date_range/end']['pg_type'] = 'timestamp'\n",
+    "field_maps['./report_metadata/date_range/begin']['pg_type'] = 'timestamptz'\n",
+    "field_maps['./report_metadata/date_range/end']['pg_type'] = 'timestamptz'\n",
     "field_maps['./policy_published/pct']['pg_type'] = 'int'\n",
     "field_maps['./record[{}]/row/count']['pg_type'] = 'int'\n",
     "field_maps['./record[{}]/row/source_ip']['pg_type'] = 'inet'\n",
     "    field_names += [field_maps[f]['pg_field_name']]\n",
     "    if field_maps[f]['pg_type'] == 'int':\n",
     "        values[field_maps[f]['pg_field_name']] = int(rep.find(f).text)\n",
-    "    elif field_maps[f]['pg_type'] == 'timestamp':\n",
-    "        values[field_maps[f]['pg_field_name']] = datetime.datetime.utcfromtimestamp(int(rep.find(f).text))\n",
+    "    elif field_maps[f]['pg_type'] == 'timestamptz':\n",
+    "        values[field_maps[f]['pg_field_name']] = datetime.datetime.fromtimestamp(int(rep.find(f).text), \n",
+    "                                                                                 tz=datetime.timezone.utc)\n",
     "    elif field_maps[f]['pg_type'] == 'inet':\n",
     "        values[field_maps[f]['pg_field_name']] = maybe_strip(rep.find(f).text)\n",
     "    else:\n",