如何在.txt文件中访问已解码的JSON值

时间:2015-04-14 16:47:38

标签: python json

我正在向服务器发送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"
    }
}

2 个答案:

答案 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)