-1

我正在构建一个字符串查询(密码查询)来针对数据库(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")

我希望有:

名称 = “D'Santana Carlos Lãnez”

但我得到:

名称 = u"D'Santana Carlos L\xe3nez"

我想那repr是返回一个unicode。或者我可能没有使用正确的功能。

4

3 回答 3

1

value已经是 unicode 了,因为你使用了前缀uinu"..."所以你不需要repr()(and unicode()or decode())

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

于 2016-01-26T19:01:38.457 回答
1
value = u"D'Santana Carlos Lãnez"
key = u"Name"
line = key + u" = "+ value
print(line)
于 2016-01-26T19:03:45.817 回答
1

Python 文字 ( repr) 语法不是 Cypher 字符串文字语法的有效替代品。领先u只是它们之间的差异之一;值得注意的是,Cypher 字符串文字没有\x转义,Python 将用于 U+0080–U+00FF 之间的字符。

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

于 2016-01-26T22:12:28.753 回答