Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python unicode与utf-8_Python_Unicode_Utf 8_Repr - Fatal编程技术网

Python unicode与utf-8

Python unicode与utf-8,python,unicode,utf-8,repr,Python,Unicode,Utf 8,Repr,我正在构建一个字符串查询(cypher查询)来对数据库(Neo4J)执行它 我需要连接一些字符串,但我在编码方面遇到了问题。 我正在尝试构建一个unicode字符串 # -*- coding: utf-8 -*- value = u"D'Santana Carlos Lãnez" key = u"Name" line = key + u" = "+ repr(value) print line.encode("utf-8") 我希望: Name=“D'Santana Carlos Lãnez

我正在构建一个字符串查询(cypher查询)来对数据库(Neo4J)执行它

我需要连接一些字符串,但我在编码方面遇到了问题。 我正在尝试构建一个unicode字符串

# -*- coding: utf-8 -*-
value = u"D'Santana Carlos Lãnez"
key = u"Name"
line =  key + u" = "+ repr(value)
print line.encode("utf-8")
我希望:

Name=“D'Santana Carlos Lãnez”

但我得到:

Name=u“D'Santana Carlos L\xe3nez”


我想,
repr
正在返回一个unicode。或者我可能没有使用正确的函数

value
已经是unicode,因为您在
u“…”中使用前缀
u
,所以不需要
repr()
(和
unicode()
decode()

此外,
repr()
不会转换为unicode。但它返回的字符串对调试非常有用-它显示本机字符的十六进制代码和其他内容。

Python literal(
repr
)语法不是Cypher string literal语法的有效替代品。前导的
u
只是它们之间的区别之一;值得注意的是,Cypher字符串文本没有
\x
转义符,Python将对U+0080–U+00FF之间的字符使用这种转义符

value = u"D'Santana Carlos Lãnez"
key = u"Name"
line = key + u" = "+ value
print(line)

如果需要从Python字符串创建密码字符串文本,则需要编写自己的字符串转义函数来写入输出匹配。但通常应避免从变量输入创建查询。与SQL数据库一样,更好的答案是。

Uhh,您使用repr的目的是什么
line=key+u“=”+value
。我正在使用
repr
将字符用作反斜杠和引号。是的,我问你为什么这样做。因为我想将此字符串发送到数据库(Neo4j)。所以我需要用引号或单引号括起来。谢谢!我试图使用查询参数化,但我使用的是py2neo,我的查询更复杂。我正在进行批量加载,因此无法使用查询参数化资源。