我正在寻找一种方法来更新dict dictionary1与dict更新的内容wihout覆盖levelA
dictionary1={'level1':{'level2':{'levelA':0,'levelB':1}}}
update={'level1':{'level2':{'levelB':10}}}
dictionary1.update(update)
print dictionary1
{'level1': {'level2': {'levelB': 10}}}
Run Code Online (Sandbox Code Playgroud)
我知道更新会删除level2中的值,因为它正在更新最低密钥level1.
鉴于dictionary1和update可以有任何长度,我怎么能解决这个问题呢?
我正在使用Pika处理来自RabbitMQ的数据.由于我似乎遇到了不同类型的问题,我决定编写一个小型测试应用程序来查看如何处理断开连接.
我写了这个测试应用程序,其中包括:
我注意到的是2个问题:
这可能是因为网络问题,数据包丢失,但我发现连接不是很强大.
当脚本在RabbitMQ服务器上本地运行并且我杀死RabbitMQ时,脚本退出时出现错误:"ERROR pika SelectConnection:3:104上的套接字错误"
所以看起来我不能让重新连接策略按原样运行.有人可以查看代码,看看我做错了什么?
谢谢,
松鸦
#!/bin/python
import logging
import threading
import Queue
import pika
from pika.reconnection_strategies import SimpleReconnectionStrategy
from pika.adapters import SelectConnection
import time
from threading import Lock
class Broker(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.logging = logging.getLogger(__name__)
self.to_broker = Queue.Queue(0)
self.from_broker = Queue.Queue(0)
self.parameters = pika.ConnectionParameters(host='sandbox',heartbeat=True)
self.srs = SimpleReconnectionStrategy()
self.properties = pika.BasicProperties(delivery_mode=2)
self.connection = None
while True:
try:
self.connection = SelectConnection(self.parameters, self.on_connected, reconnection_strategy=self.srs)
break
except Exception as err:
self.logging.warning('Cant …Run Code Online (Sandbox Code Playgroud) 我正在以json文档的形式处理数据输入.这些文档需要具有某种格式,如果它们不符合要求,则应忽略它们.我目前正在使用凌乱的'if thens'列表来检查json文档的格式.
我一直在尝试使用不同的python json-schema库,这可以正常工作,但我仍然可以使用模式中未描述的密钥提交文档,这对我来说没用.
虽然我期望它,但此示例不会生成异常:
#!/usr/bin/python
from jsonschema import Validator
checker = Validator()
schema = {
"type" : "object",
"properties" : {
"source" : {
"type" : "object",
"properties" : {
"name" : {"type" : "string" }
}
}
}
}
data ={
"source":{
"name":"blah",
"bad_key":"This data is not allowed according to the schema."
}
}
checker.validate(data,schema)
Run Code Online (Sandbox Code Playgroud)
我的问题是双重的:
谢谢,
松鸦
我正在寻找一种让我的python程序通过pam处理身份验证的方法.我正在使用http://code.google.com/p/web2py/source/browse/gluon/contrib/pam.py这个,只要我的python程序以root身份运行就不太理想了我的看法.
如何在不需要root权限的情况下使用pam进行用户名/密码验证?
我正在研究组织我的模块和课程.我一直在相关模块中收集相关课程,所以我可以做以下事情:
from vehicles.car import engine
Run Code Online (Sandbox Code Playgroud)
在目录工具中有一个名为car的文件,其中包含类引擎.明确.
现在我正在研究我可以在文件中存储类的可能性.所以我可以这样做:
from filters import air
Run Code Online (Sandbox Code Playgroud)
air class是一个独立的文件.然而,我不清楚如何将一个名为air的类存储到其自己的文件air.py中
如果filters.py包含我的所有类,则此导入将起作用,但这不是我想要的.
任何提示或指示?
我有一个字典,其中包含通过Web应用程序可用的一组键值:我想处理用户提供的公式,如:((value1 + value3)/ value4)*100
什么是最简单的方法来计算公式计算匹配值与字典中的值?
考虑这个例子:
#!/usr/bin/python
values={'value1':10,'value2':1245,'value3':674365,'value4':65432,'value5':131}
formula=raw_input('Please enter formula:')
Run Code Online (Sandbox Code Playgroud)
如果我提供公式'((value1 + value3)/ value4)*100',我如何将value1等映射到字典中的map1并计算结果?
干杯,