【发布时间】:2020-06-23 05:05:22
【问题描述】:
我正在尝试将一些 json 数据添加到字典中,我已经完成但不是按照我想要的方式。
我用 Python 提出了一些请求,并在要发送的数据中添加一些参数
这是我的完整请求
def breakoutstats():
cookies = a
headers = {
'Connection': 'keep-alive',
'Accept': '*/*',
'X-Requested-With': 'XMLHttpRequest',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Origin': 'www.site.com',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'www.site.com',
'Accept-Language': 'en-US,en;q=0.9,es;q=0.8',
}
data = {
'ajax': '1',
'item': 'false',
'timeStamp': '1592832890669600142',
'task': 'getReport',
'divId': 'MainReport',
'reportType': '0',
}
response = requests.post('www.site.com', headers=headers, cookies=cookies, data=data)
我要编辑的参数是 data ,我想从 json 文件中附加一个 json 信息,如前所述,我已经完成了,但我需要在单引号内附加信息,
这是我的结果:
data = {
'ajax': '1',
'item': 'false',
'timeStamp': '1592832890669600142',
'task': 'getReport',
'divId': 'MainReport',
'reportType': '0',
'str' : {'RequestedOutputOptions': '15;23;45;24;26;46', 'FromDate': '2020-06-22 00:00:00', 'ToDate': '2020/06/22 23:59:00', 'CustomerTrafficIds': 'IN6449;6463', 'CustomerIPIds': '', 'ProviderTrafficIds': '', 'ProviderTrunkIds': '', 'ProviderIPIds': '', 'IsMergeCDR': '2', 'INXNames': '', 'InSPXCDRGenIds': '', 'OutSPXCDRGenIds': '', 'RGIds': '', 'GatewayIds': '', 'CountryCodes': 'IN509', 'CityCodes': '509=Mobile Digicel', 'CitiesAndOr': 'AND', 'CityCodes2': '', 'Modalidads': '', 'OperatorIds': '', 'DestinationGroupIds': '', 'CustomCodesGroupIds': '', 'UseTemporaryTable': 'NULL', 'AutoRefreshReport': 0, 'DisconnectCause': '', 'SelectedValues': '', 'ShowInGraph': 0, 'NumOfSample': 'NULL', 'SplitBy': -1, 'FieldToAgreg': 'NULL', 'AnchorFields': -1, 'AutoRefresh': 0,
'FiltersForRecords': '', 'DailyCycle': 0, 'CompareTableName': '', 'DynamicFilters': '[]'}
}
这就是我需要的。
data = {
'ajax': '1',
'item': 'false',
'timeStamp': '1592832890669600142',
'task': 'getReport',
'divId': 'MainReport',
'reportType': '0',
'str': '{"RequestedOutputOptions":"24;22;43;5;27;26;16;2;4;30;44;45;49","FromDate":"2020-06-22 00:00:00","ToDate":"2020/06/22 11:04:00","CustomerTrafficIds":"IN6449;6463","CustomerIPIds":"","ProviderTrafficIds":"","ProviderTrunkIds":"","ProviderIPIds":"","IsMergeCDR":"2","INXNames":"","InSPXCDRGenIds":"","OutSPXCDRGenIds":"","RGIds":"","GatewayIds":"","CountryCodes":"IN509","CityCodes":"509=Mobile Digicel","CitiesAndOr":"AND","CityCodes2":"","Modalidads":"","OperatorIds":"","DestinationGroupIds":"","CustomCodesGroupIds":"","UseTemporaryTable":"NULL","AutoRefreshReport":0,"DisconnectCause":"IN200","SelectedValues":"","ShowInGraph":0,"NumOfSample":"NULL","SplitBy":-1,"FieldToAgreg":"NULL","AnchorFields":-1,"AutoRefresh":0,"FiltersForRecords":"","DailyCycle":0,"CompareTableName":"","DynamicFilters":"[]","Title":"","DownloadToFile":0,"MaxRows":0}'
}
正如您在我的结果中看到的那样,我得到的数据没有在单引号内,在括号内也有单引号而不是双引号,正如您在第二个结果中看到的那样。
这是我用来将信息附加到 data 字典的代码。
with open('breakoutrequest.json', 'r') as myfile:
data=myfile.read()
# parse file
obj = json.loads(data)
data.update({'str': obj})
或者还有其他最简单的方法来编辑请求中的数据吗?
【问题讨论】:
-
试试这个,
data.update({'str': json.dumps(obj)})
标签: python json python-requests