【发布时间】:2015-06-22 06:40:47
【问题描述】:
我正在从事一个项目,我必须从链接获取数据,然后在从获取的数据中提取所需的信息后将数据发布到另一台服务器。我正在为我的 GET 和 POST 使用库请求,这是提取所需数据的代码:
''' original data fetched
result= {"version": "1.0","cmd":"list_metering","status":"success","devices":
[{"deviceid":"xxxxx","model":"xxxx"},{"deviceid":"xxxxx","model":"xxxx"}]} '''
for devices in result['devices']:
# delete the parameters I don't need
final_data = removekey(devices,'model')
# x.update(final_data) -> Trying dicts
# x.append(final_data) -> Trying lists
# Sending directly
resp = requests.post(url,json=final_data,headers=headers)
no+=1
if no== len(result['devices']):
break
我将在这里调用一个函数,该函数将删除不需要的键,然后我将把其余的键发布出来。
我尝试对字典使用 update() 函数,但它不起作用,因为我有相同的键,所以只会考虑其中一个数据。列表有效,但我会以这种形式获取数据:
[{"deviceid":"xxxxx","model":"xxxx"},{"deviceid":"xxxxx","model":"xxxx"}]
我尝试使用 json=data 和 x.json() 但两者都不适用于列表。但是,如果我直接发送数据,如我的第一个代码中所示,由于延迟,我不太确定还有什么,如果我幸运的话,将发送完整数据,否则我会不断丢失部分获取的数据.
在这种情况下,我如何在 json 中获取数据,然后在 json 中再次发送回来?我的目标是将数据作为一个捆绑包发送,所有设备一起发送,这样我就不会丢失任何东西。
这是我正在使用的 GET 和 POST:
# GET
url_source = 'https://website'
url = requests.get(url_source)
result = url.json()
# POST
headers = {'charset':'utf-8','Content-Type':'application/json'}
url = "http://xxxx/_get_v1.php"
data = final_data
resp = requests.post(url,json=data,headers=headers)
【问题讨论】:
-
你能说得更清楚一点吗?如果可能,添加示例 GET/POST 请求。
-
我会做那个老板。