zeromq我需要一种在 python 多处理进程之间每秒发送 300 条短消息的快速方法。每条消息都需要包含一个IDandtime.time()
msgpack似乎是在通过 发送之前序列化字典的最佳方法zeromq,并且方便地,msgpack有一个正是我需要的示例,除了它有一个datetime.datetime.now().
import datetime
import msgpack
useful_dict = {
"id": 1,
"created": datetime.datetime.now(),
}
def decode_datetime(obj):
if b'__datetime__' in obj:
obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f")
return obj
def encode_datetime(obj):
if isinstance(obj, datetime.datetime):
return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")}
return obj
packed_dict = msgpack.packb(useful_dict, default=encode_datetime)
this_dict_again = msgpack.unpackb(packed_dict, object_hook=decode_datetime)
Run Code Online (Sandbox Code Playgroud)
问题是他们的示例不起作用,我收到此错误:
obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f")
KeyError: 'as_str'
Run Code Online (Sandbox Code Playgroud)
也许因为我使用的是python 3.4,但我不知道strptime有什么问题。将不胜感激您的帮助。
我需要在两台计算机之间转移我的Selenium会话。
要通过Selenium导出和导入cookie,您必须分别访问每个网站,然后才能设置其cookie,我想避免这种情况。我也想复制本地存储。
到目前为止,这是我尝试过的方法:
1-启动新的Selenium会话:
driver = webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)
2-在%temp%中找到其临时Chrome用户配置文件,并将其复制到我的应用程序的文件夹中
3-使用此用户配置文件启动新驱动程序:
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("user-data-dir=C:\\profiles\\temp_profile")
driver = webdriver.Chrome(chrome_options=chrome_options)
Run Code Online (Sandbox Code Playgroud)
上面的作品-本地存储和cookie仍在我的本地PC上,但是,当我将此用户配置文件复制到另一台PC并启动它时,本地存储仍然存在,但cookie消失了。
我还使用常规的chrome配置文件尝试了相同的操作,并尝试直接在Chrome中而不是在Selenium中启动用户配置文件,并且cookie仍然消失了。