Python列表:用单引号替换双引号
我正在尝试将数据插入oracle db,列的值将从列表中使用。该列表包含多个值,对于空值(标记为“”-双引号),它将失败。 因此,我想将列表中的所有双引号更改为单引号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 == "":
值=['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字符串,必须将其编码为字节字符串