使python将带引号的字符串视为b

2024-05-29 04:31:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Pyparsing生成一个语法,并想让它解析所有的插入,甚至那些有日期的插入。 我不知道如何使quotedStrings成为一个完整的块。你知道吗

ident          = Word( alphas, alphanums + "_$" ).setName("identifier")
number         = Word(nums)

quotedString = "'" + delimitedList(number | ident , ".", combine=True) + "'"
quotedStringList = Group(delimitedList(quotedString))

insert_statement <<= (INSERT + INTO + tableNameList + VALUES + delimitedList(openingparenthese + quotedStringList + closingparenthese) + Optional(endLine))

data = "INSERT INTO test VALUES('2008-07-28 00:00:05', 'a');"
print (data, "\n", insert_statement.parseString( data ))

我希望得到如下结果:

['insert', 'into', ['test'], 'values', '(', ["'", '2008-07-28 00:00:05', "'", "'", 'a', "'"], ')', ';']

但我只得到:

Expected "'"

Tags: testnumberdata语法pyparsingwordstatementinsert
2条回答

我不认为这种错误会发生在很多人身上,但是引用字符串的最简单方法是使用pyparser给出的方法 from pyparser import quotedString, ... as pp而不是尝试创建自己的

不管怎样,谢谢你的回复,帮我解决了其他问题

我不能评论,所以我必须创造一个答案 试着使用 str(text).replace ("'", "\'") 方法或使用regex

import re
re.sub(re.compile("'"),"\'", str(text))

我不在键盘旁,所以要耐心。 但我希望能有所帮助

相关问题 更多 >

    热门问题