我绞尽脑汁地花了5个小时来找出如何在Python中以编程的方式创建一个具有特定值的字典,在其中我从列表中获取它。这听起来很容易(而且肯定是这样),但我完全迷失在双引号、字符串值和转义字符的错误中。任何帮助都将是非常感谢的。至少要理解我到底做错了什么:
我会尽量更详细。我想要做的是以编程方式创建以下内容:
checkNode = {'statements':[
{"statement":"MATCH (n:RealNode { id: "1" }) SET n.telecomType = 'P', n.buildingType= 'c' RETURN n"},
{"statement":"MATCH (n:RealNode { id: "2" }) SET n.telecomType = 'P', n.buildingType= 'w' RETURN n"}, {...}, {...}
]}上面是一个Neo4J查询,我想通过发送这样的POST请求来执行该查询:
mkr = requests.post(url, data=json.dumps(checkNode), headers=headers)这是我所遵循的程序:
请求从未发送过。我打印了checkNode变量,它如下所示:
{'statements': ["{'statement': MATCH (n:RealNode { id: 'P3301041101' }) SET n.telecomType = 'P', n.buildingType= 'sealed' RETURN n},{'statement': CREATE (dsld:DslSldBconf {nodeType:'P3301041101', id: 'DSL-SLD48-BCONF-ALU', temaxia: '1'})}..."]}
I think one of the problems here is the double quotes after the [我花了几个小时试验不同的参数,但我无法使它工作。我在这里做错什么了?非常感谢!
发布于 2015-02-19 19:01:28
您不应该在手工字符串处理方面乱搞;json模块为您完成了所有这些工作。你想要的更像是:
x = {"statement":"MATCH (n:RealNode { id: "1" }) SET n.telecomType = 'P', n.buildingType= 'c' RETURN n"}
statement_list = [x]
# add any more statements to statement_list, probably using append()
checkNode = {'statements': statement_list}
mkr = requests.post(url, data=json.dumps(checkNode), headers=headers)
print(mkr.text)另外,对于您通过网络发送的内容,请注意什么是str,什么是bytes。
https://stackoverflow.com/questions/28612732
复制相似问题