仅当从相邻文件导入功能时发生错误

时间:2019-10-19 22:17:35

标签: python function jupyter-notebook python-import

当我在脚本中定义并调用函数时,它的效果很好。当我从相邻文件导入它时,出现错误:“ UnboundLocalError:分配前引用了本地变量'data'”

我曾尝试在IF语句中包括“ return(json_normalize(data))”,但未返回任何内容。

正在导入的函数。

def get_query(query_num):
    if __name__ == '__main__':
        params = {'p_param': query_num}
        query_id = query_num
        data = get_fresh_query_result('https://redash.domain.io', query_id, api_key, params)

    return(json_normalize(data))

get_fresh_query_result导入时工作正常。

预期结果是Pandas df。但我却收到错误消息!

2 个答案:

答案 0 :(得分:3)

由于if语句检查当前模块是否为__main__,所以发生错误。仅当函数在主脚本中时才是这种情况。删除if语句,即可从其他位置导入该模块。

答案 1 :(得分:0)

糟糕,我在发布后马上就知道了。完全摆脱了IF语句,并获得了:

function reply(){   
  $("#message").html("Sending.....");
  $("#reply").attr("value",tinymce.get('reply-proxy').getContent());

  $.ajax( {
    url: '{{route("reply_conversation")}}',
    type: 'POST',
    data: new FormData( $("#reply_form")[0] ),

现在工作正常。