Can python's csv reader leave the quotes in?

后端 未结 2 1233
夕颜
夕颜 2021-01-18 02:16

I want to use the python CSV reader but I want to leave the quotes in. That is I want:

>>> s = \'\"simple|split\"|test\'
>>> reader = csv.         


        
2条回答
  •  粉色の甜心
    2021-01-18 02:49

    You're going to have to write your own parser, as the part of the module that backs parsing and quotes is in the C side of things, in particular parse_process_char located in Modules/_csv.c:

        else if (c == dialect->quotechar &&
                 dialect->quoting != QUOTE_NONE) {
            if (dialect->doublequote) {
                /* doublequote; " represented by "" */
                self->state = QUOTE_IN_QUOTED_FIELD;
            }
            else {
                /* end of quote part of field */
                self->state = IN_FIELD;
            }
        }
        else {
            /* normal character - save in field */
            if (parse_add_char(self, c) < 0)
                return -1;
        }
    

    That "end of quote part of field" section is what's chomping your double quote. On the other hand, you might be able to kill that else conditional and rebuild the python source code. However that's not all that maintainable to be honest.

    Edit: Sorry I meant add the bit from the last else before self->state = IN_FIELD so it adds the quote in.

提交回复
热议问题