2015-04-14 4 views
0

Я отправляю запрос JSON на сервер и должен получить доступ к отметке времени, чтобы он динамически менялся в зависимости от другой временной переменной. Я использую запросы для отправки почтового запроса с JSON в виде файла .txt.Как получить доступ к декодированным значениям 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

Возможный дубликат 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 вместо data2; вероятно, используя аргумент «json = data_as_dict» вместо «data =» при вызове request.post()

Используйте this link для получения информации обо всех параметрах форматирования.

+0

да, за исключением, похоже, data2 на самом деле строка –

+0

Точно, Я получаю ожидающую ошибку int при переходе по этому маршруту. Как мне получить доступ к данным в f2 перед отправкой данных2 и отправкой на сервер? – hgs

+0

Я читал это слишком быстро. См. Обновленный ответ. – Joe

Смежные вопросы