Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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相等比较无法将两个参数转换为Unicode_Python_Unicode_Encode_Py2neo - Fatal编程技术网

Python 运行查询时,Unicode相等比较无法将两个参数转换为Unicode

Python 运行查询时,Unicode相等比较无法将两个参数转换为Unicode,python,unicode,encode,py2neo,Python,Unicode,Encode,Py2neo,使用py2neo运行查询时出现问题: posts = graph.run( 'MATCH (p:Post) WHERE p.post CONTAINS \'' + keyword + '\' ' 'AND p.timestamp>' + str(startDate) + ' AND p.timestamp<' + str(endDate) + ' return p').data() pr

使用py2neo运行查询时出现问题:


posts = graph.run(
            'MATCH (p:Post) WHERE p.post CONTAINS \'' + keyword + '\' '
            'AND p.timestamp>' + str(startDate) +
            ' AND p.timestamp<' + str(endDate) +
            ' return p').data()
print json.dumps(posts)

但它不打印任何内容

这意味着两个字符串的编码不同。给出完整的堆栈跟踪可以更好地分析问题,但我猜解码
关键字
会有所帮助。不过,您需要先找出它是用什么编码的(如UTF-8、CP-1252、Mac Roman等)。我如何找到
关键字的编码?那么,您从哪里/如何获得
关键字?它是从磁盘上的文件中读取的、通过命令行输入的、通过HTTP发送的吗?不同的协议有不同的指定文本编码的方法。不幸的是,还有一种情况您必须猜测。@lenz我运行python脚本,其中我使用命令
shell\u exec('python path/to/file$\u POST['data']2>&1')从php脚本运行
graph.run(*)
。然后,在Pythoni中,首先使用
sys.argv[1]
上的split函数,然后使用
keyword=sys.argv[1].replace(“keyword:”,”)
来获取te var
关键字
。在这种情况下,您需要了解PHP是如何处理这里的编码的(在
shell\u exec
命令中)。也许它没有,只是把它得到的字节传递到某个地方;在这种情况下,你必须到达链条的后面。知道编码后,使用它来解码
关键字
。或者只是tryUTF-8,因为Python会告诉您是否猜错了这个。也就是说:
keyword=keyword.decode('utf8')
list(match("Post").where(post__contains=keyword, timestamp__gt=startDate, timestamp__lt=endDate))