html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,issue,performed_via_github_app
https://github.com/simonw/sqlite-utils/issues/444#issuecomment-1155815956,https://api.github.com/repos/simonw/sqlite-utils/issues/444,1155815956,IC_kwDOCGYnMM5E5FoU,9599,2022-06-14T23:49:56Z,2022-07-07T16:39:18Z,OWNER,"Yeah my initial implementation there makes no sense:
```python
csv_reader_args = {""dialect"": dialect}
if delimiter:
csv_reader_args[""delimiter""] = delimiter
if quotechar:
csv_reader_args[""quotechar""] = quotechar
reader = _extra_key_strategy(
csv_std.reader(decoded, **csv_reader_args), ignore_extras, extras_key
)
first_row = next(reader)
if no_headers:
headers = [""untitled_{}"".format(i + 1) for i in range(len(first_row))]
reader = itertools.chain([first_row], reader)
else:
headers = first_row
docs = (dict(zip(headers, row)) for row in reader)
```
Because my `_extra_key_strategy()` helper function is designed to work against `csv.DictReader` - not against `csv.reader()` which returns a sequence of lists, not a sequence of dictionaries.
In fact, what's happening here is that `dict(zip(headers, row))` is ignoring anything in the row that doesn't correspond to a header:
```pycon
>>> list(zip([""a"", ""b""], [1, 2, 3]))
[('a', 1), ('b', 2)]
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1271426387,