Python数据上传错误
通过使用python代码,我试图从json文件读取数据,并通过API上传数据。然而,我得到了HTTP错误5000。以下是我的代码:Python数据上传错误,python,json,python-2.7,api,urllib2,Python,Json,Python 2.7,Api,Urllib2,通过使用python代码,我试图从json文件读取数据,并通过API上传数据。然而,我得到了HTTP错误5000。以下是我的代码: url = 'http://sipdev1.vbi.vt.edu:8080/EpiViewer/epiviewer/services/uploadGraphData' for i in json_file_name: json_data = open (i, 'r') lines=json_data.
url = 'http://sipdev1.vbi.vt.edu:8080/EpiViewer/epiviewer/services/uploadGraphData'
for i in json_file_name:
json_data = open (i, 'r')
lines=json_data.readlines()
req = urllib2.Request(url)
req.add_header('Content-Type','application/json')
data = json.dumps(lines)
response = urllib2.urlopen(req,data)
以下是错误:
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 500: Internal Server Error
输入文件示例:
{
"username": "xxxxx",
"password": "yyyyy",
"timeSeriesName": "Liberia_01-18-2015",
"dataType": "Cases",
"plotType": "Cumulative",
"filename": "C_C.csv",
"dateFormat": "MM-dd-yy",
"forecastedOn": "01/18/2015",
"visibility": "Public",
"data": {
"01-25-2015":"26 38 14",
"02-01-2015":"22 33 11",
"02-08-2015":"19 32 6",
"02-15-2015":"17 32 2",
"02-22-2015":"15 18 12",
"03-01-2015":"14 26 2"
}
}
我认为代码不能正确地解析我的输入文件。您对解决方案有什么想法吗?您的文件已经编码为JSON。您不需要再次对其进行编码。不更改发送文件:
for name in json_file_name:
with open(name) as json_data:
data = json_data.read()
req = urllib2.Request(url, data, {'Content-Type': 'application/json'})
response = urllib2.urlopen(req)
500错误表示服务器进程在试图解析您的输入时崩溃。您的数据要么有额外的密钥,要么没有足够的密钥,要么您的数据以服务器无法预料的方式格式化 基于: lines=json_data.readlines() 及 data=json.dumps(行) 看起来您实际上还没有将数据转换为json对象,因此也无法从json中转储数据。尝试替换:
json_data = open (i, 'r')
lines=json_data.readlines()
与:
您还应该使用比我更好的名称,并尝试/捕获与格式不正确的json文件相关的错误
此外,您会发现http API更容易使用请求库-请参见:
with open(i) as data_file:
json_data = json.load(data_file)