我正在向服务器发送JSON请求,需要访问时间戳,以便根据另一个时间变量动态更改。我正在使用请求发送带有JSON的发布请求作为.txt文件。
我的JSON就在这里。我希望能够访问dateAndTime字段,以便我可以使用当前时间发送我的查询。服务器将json作为data2 =jsonpickle.encode(jsonpickle.decode(f2.read()) )
f2
是json文件。
这是我的帖子请求,我最终会改变这一点;
dateAndTime
中的 r2 = requests.post(url2, data=data2, headers=headers2,timeout=(connect_timeout, 10))
参数
{ "RequestSpecificDetail": { "ParentSRNumberForLink": "" }, "MetaData": { "appVersion": "1.34", "deviceModel": "x86_64", "dateAndTime": "01/15/2015 12:46:36", "deviceToken": "A2C1DD9D-D17D-4031-BA3E-977C250BFD58", "osVersion": "8.1" }, "SRData": { "SRNumber": "1-3580171" } }
答案 0 :(得分:0)
诀窍是将数据作为字典。您可以使用literal_eval:
import ast
data_as_dict = ast.literal_eval(data2)
您可以通过以下方式获取当前时间:
import datetime
now = datetime.now().strftime('%m/%d/%Y %H:%M:%S')
data_as_dict['MetaData']['dateAndTime'] = now
然后你可以传递data_as_dict而不是data2;可能使用' json = data_as_dict'争论而不是' data ='在调用requests.post()
时使用this link获取有关所有格式选项的信息。
答案 1 :(得分:0)
data2 = jsonpickle.decode(whatever)
data2["Metadata"]["dateAndTime"] = "Whatever"
data2 = jsonpickle.encode(data2)