Python列表:用单引号替换双引号

Python列表:用单引号替换双引号,python,python-3.x,regex,cx-oracle,Python,Python 3.x,Regex,Cx Oracle,我正在尝试将数据插入oracle db,列的值将从列表中使用。该列表包含多个值,对于空值(标记为“”-双引号),它将失败。 因此,我想将列表中的所有双引号更改为单引号 值=['50.38146'、“”、“”、'ABC'] 此处“”标记为空值。我想用双单引号将所有双双引号更改为表示空字符串。大概是这样的: value=['50.38146','','ABC'] 我在下面尝试过,但不起作用: row1 = [] for x in values: if x == "":

我正在尝试将数据插入oracle db,列的值将从列表中使用。该列表包含多个值,对于空值(标记为“”-双引号),它将失败。 因此,我想将列表中的所有双引号更改为单引号

值=['50.38146'、“”、“”、'ABC']

此处“”标记为空值。我想用双单引号将所有双双引号更改为表示空字符串。大概是这样的:

value=['50.38146','','ABC']

我在下面尝试过,但不起作用:

row1 = []
for x in values:
  if x == "":
    row1.append('')
  else:
    row1.append(x)

任何想法

解决方案都是将if x==”替换为if x==”


解决方案是将if x==“”替换为if x=='“”

获取“”的第一个索引并将其替换为“”它将用“”替换所有出现的“”

>>值=['50.38146'、“”、“”、“”、'ABC']
>>>索引=值。索引(“”)#获取“”的第一个索引
>>>值[索引]=“将所有”替换为“”
>>>价值观
['50.38146','','ABC']
获取“”的第一个索引并将其替换为“”它将用“”替换所有出现的“”

>>值=['50.38146'、“”、“”、“”、'ABC']
>>>索引=值。索引(“”)#获取“”的第一个索引
>>>值[索引]=“将所有”替换为“”
>>>价值观
['50.38146','','ABC']

您的代码不起作用的原因是,在代码中,您写道,如果x==“”,
你是说如果x等于空白。这不起任何作用,因为您的意思是,如果x等于空白,则需要使用x=='''“”“”,这会告诉程序您要查找双引号,并使用单引号作为字符串说明符

因此,您的代码应该是:

第1行=[]

对于x值:

if x == '""':

    row1.append('')

else:

    row1.append(x)

代码无法工作的原因是,在代码中,您编写了if x==“”,
你是说如果x等于空白。这不起任何作用,因为您的意思是,如果x等于空白,则需要使用x=='''“”“”,这会告诉程序您要查找双引号,并使用单引号作为字符串说明符

因此,您的代码应该是:

第1行=[]

对于x值:

if x == '""':

    row1.append('')

else:

    row1.append(x)

在python中是相同的,它们是空字符串的字符串文本。这是真的。。但对于Oracle DB cx_Oracle模块,它们并不相同。您将收到ORA-01741:非法零长度标识符错误您希望索引1和索引2上有什么类型的字符串?字符串类型?很抱歉,我没有听清楚。cx_oracle对列表中该类型元素的要求是什么,对于python,它只是一个字符串,您想要字节字符串还是unicode字符串。您不能传递unicode字符串,它必须被编码为字节字符串
在python中是相同的,它们是空字符串的字符串文本。这是真的。。但对于Oracle DB cx_Oracle模块,它们并不相同。您将收到ORA-01741:非法零长度标识符错误您希望索引1和索引2上有什么类型的字符串?字符串类型?很抱歉,我没有听清楚。cx_oracle对列表中该类型元素的要求是什么,对于python,它只是一个字符串,您想要字节字符串还是unicode字符串。不能传递unicode字符串,必须将其编码为字节字符串