2015-04-14 16 views
0

我正在向服務器發送JSON請求,並需要訪問時間戳,以便根據另一個時間變量動態更改。我正在使用請求發送帶有JSON的發佈請求作爲.txt文件。如何訪問.txt文件中的解碼JSON值

我的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

http://stackoverflow.com/questions/2835559/parsing-values-from-a-json-file-in-python – AlG

回答

0
data2 = jsonpickle.decode(whatever) 
data2["Metadata"]["dateAndTime"] = "Whatever" 
data2 = jsonpickle.encode(data2) 
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而不是數據2;當調用request時,可能使用'json = data_as_dict'參數而不是'data ='.post()

有關所有格式化選項的信息,請使用this link

+0

耶的可能的複製,除了它看起來像DATA2實際上是一個字符串 –

+0

沒錯,走這條路線時,我一直在等待一個int錯誤。在發送創建數據2併發送到服務器之前,如何訪問f2中的數據? – hgs

+0

我讀得太快了。查看更新的答案。 – Joe