Skip to content

Parsing a CSV with a non-CSV header #393

Answered by ptmcg
davetapley asked this question in Q&A
Discussion options

You must be logged in to vote

I think I only changed code from csv_body_word on down.

  1. csv_body_word needs to include a ' ' space character, in order to parse timestamps
  2. setting whitespace chars to '' means that you have to explicitly add parsing for LineEnds.
  3. it looks like you misgrouped the csv_body expression
# csv_body_word = pp.Word(pp.nums + ':-.')
csv_body_word = pp.Word(pp.nums + ':-. ')  # must add space to parse timestamp values
# csv_row = pp.delimitedList(csv_body_word, allow_trailing_delim=True).setWhitespaceChars('')
csv_row = pp.delimitedList(csv_body_word.setWhitespaceChars(''), allow_trailing_delim=True) + pp.LineEnd().suppress()
# csv_body = pp.Group(csv_row[...]('csv_body'))
csv_body = pp.Group(csv…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@davetapley
Comment options

Answer selected by davetapley
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants