我有一个基本的词典如下:
sample = {}
sample['title'] = "String"
sample['somedate'] = somedatetimehere
Run Code Online (Sandbox Code Playgroud)
当我尝试做的时候,jsonify(sample)我得到:
TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) is not JSON serializable
我能做些什么,以便我的字典样本可以克服上述错误?
注意:虽然它可能不相关,但字典是从mongodb中检索记录生成的,当我打印输出时str(sample['somedate']),输出是2012-08-08 21:46:24.862000.
我需要在两台机器之间发送一些变量的值,并打算使用套接字来完成它.我使用md5哈希算法作为我发送的数据的校验和,以确保正确传输数据.要执行md5哈希算法,我必须将数据转换为字节.我想传输变量的名称及其值.因为我有很多变量,所以我使用字典.
所以我想将这样的东西转换为字节?
variables = {'var1' : 0, 'var2' : 'some string', 'var1' : ['listitem1','listitem2',5]}
Run Code Online (Sandbox Code Playgroud)
换句话说,我有一个字典,其中包含许多不同的数据类型,包括列表,而这些列表中又包含多种不同的数据类型,我想将其转换为字节.然后在接收机器上将这些字节转换回字典.
我已经尝试了一些不同的方法json在这里推荐(将python dict转换为字符串并返回)但是我不能接缝生成一个字符串,它从不介意字节.
我有一个str像这样的有效载荷
payload = "{\"fqdn\":\"examplazdazdazazdzadza.com\",\"duration\":5,\"owner\":{\"city\":\"Paris\",\"given\":\"Alice\",\"family\":\"Doe\",\"zip\":\"75001\",\"country\":\"FR\",\"streetaddr\":\"5 rue neuve\",\"phone\":\"+33.123456789\",\"type\":0,\"email\":\"alice@example.org\"}}"
Run Code Online (Sandbox Code Playgroud)
这是来自 Gandi API的负载
我想让payload更动态一点,有一定的灵活性,所以我累了 dict
domain = 'example.com`
payload = {
'fqdn': domain,
'duration': 1,
'owner': {
"city": "Paris",
"given": "Alice",
"family": "Doe",
"zip": "75001",
"country": "FR",
"streetaddr": "5 rue neuve",
"phone": "+33.123456789",
"state": "FR-J",
"type": 0,
"email": "alice@example.org"
}
}
Run Code Online (Sandbox Code Playgroud)
在此之后,我需要恢复到原始日期类型(str),我这样做
payload = '\n'.join('\%s\: "\%s\"' % (k, v) for k, v in payload.items())
然而这会返回
错误的请求
.
任何想法如何正确完成这项工作?