2017-06-07 44 views
1

我已經寫了一個POST api來發布文件。我想要打開文件並解析文件中的JSON內容。但os.path.join()行似乎不起作用。我得到「'InMemoryUploadedFile'對象沒有屬性'startswith'」異常。已包括下面使用的代碼。os.path.join()給出InMemoryUploadFile錯誤

def schedule_load(file_name): 
    print file_name 
    file_json = default_storage.open(os.path.join("schedule_files", file_name), 'r') 
    var = file_json.read() 
    print var 
    file_json.close() 
    schedule = json.loads(var) 

我POST方法:

@api_view(['POST']) 
def post_schedule(request): 
print "post_schedule" 
if request.method == 'POST': 
    print "if POST" 
    form = ScheduleForm(request.POST, request.FILES) 
    file_name = form['schedule_file'].value() 

    if form.is_valid(): 
     print "is_valid" 
     form.save() 
     schedule_load(file_name) 
     return JsonResponse({"status": "success"}, status=status.HTTP_200_OK) 
    else: 
     return JsonResponse({"status": "Invalid file"}, status=status.HTTP_200_OK) 

回答

1

因爲你要對付的是一個InMemoryUploadedFile,而不是一個文件名。您的代碼應該更改爲

def schedule_load(file_name): 
    var = file_name.read() 
    print var