Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命令行:Python程序说;“杀死”;_Python_Xml_Linux_Pandas_Dataframe - Fatal编程技术网

命令行:Python程序说;“杀死”;

命令行:Python程序说;“杀死”;,python,xml,linux,pandas,dataframe,Python,Xml,Linux,Pandas,Dataframe,我正在从465个网页中提取xml数据,并使用python dataframe解析并将其存储在“.csv”文件中。在运行程序30分钟后,程序保存“200.csv”文件并自杀。命令行执行显示“Killed”。但当我分别为前200页和其余265页运行程序进行提取时,它运行得很好。我在网上彻底搜索了一下,没有找到这个问题的正确答案。你能告诉我是什么原因吗 for i in list: addr = str(url + i + '?&$format=json') response

我正在从465个网页中提取xml数据,并使用python dataframe解析并将其存储在“.csv”文件中。在运行程序30分钟后,程序保存“200.csv”文件并自杀。命令行执行显示“Killed”。但当我分别为前200页和其余265页运行程序进行提取时,它运行得很好。我在网上彻底搜索了一下,没有找到这个问题的正确答案。你能告诉我是什么原因吗

for i in list:
    addr = str(url + i + '?&$format=json')
    response = requests.get(addr, auth=(self.user_, self.pass_))
    # print (response.content)
    json_data = response.json()
    if ('d' in json_data):
        df = json_normalize(json_data['d']['results'])
        paginate = 'true'
        while paginate == 'true':
            if '__next' in json_data['d']:
                addr_next = json_data['d']['__next']
                response = requests.get(addr_next, auth=(self.user_, self.pass_))
                json_data = response.json()
                df = df.append(json_normalize(json_data['d']['results']))
            else:
                paginate = 'false'
                try:
                    if(not df.empty):
                        storage = '/usr/share/airflow/documents/output/' + i + '_output.csv'
                        df.to_csv(storage, sep=',', encoding='utf-8-sig')
                    else:
                        pass
                except:
                        pass

提前谢谢

看起来您的内存不足

您能否尝试增加允许的内存(快速解决方案)
或者优化代码以减少内存消耗(最佳解决方案)

如果速度不是所要求的,您可以尝试将数据保存到临时文件中,并在需要时从中读取数据,但我想可以优化for循环以减少内存消耗,而无需使用文件系统。
毕竟,内存是循环应该存在的地方

尝试运行代码而不使用
Try
捕获


如果程序被终止,很可能是内存不足。我建议你分批分析你的文件,比如说一次20-40个文件,导出它们,然后连接导出的文件。我并不是把这些文件连接在一起。我正在解析每个网页并将其存储在不同的csv文件中。但它有465个网页和465个“.csv”文件。谢谢在这种情况下,也许可以发布您的代码,以便我们可以建议更改。需要更多信息来帮助您。看看这里:@Alex代码上传了。如果你有任何问题,请告诉我。谢谢你有没有在系统日志中看到类似“OOM Killer”的东西?很可能是这样的
dmesg
应该有一个条目,指出进程已被终止,因为它已用完memory@Stevan,我在没有try-and-catch块的情况下尝试并运行了代码,但仍然不起作用。@raj好的,您是否尝试增加内存限制?这台机器有多少可用内存?@StevanTosic我正在linux服务器上运行我的程序。有没有办法提高它?ThanksTraceback(最后一次调用):文件“winning.py”,第103行,在main()文件“winning.py”,第100行,在main cred.Successfactors()文件“winning.py”,第71行,在Successfactors json_data=response.json()文件/usr/local/lib/python2.7/dist packages/requests/models.py,第896行,在json return complexjson.loads中(self.text,**kwargs)文件“/usr/local/lib/python2.7/dist packages/requests/models.py”,第860行,在text content=str(self.content,encoding,errors='replace')MemoryError中。-------------这就是我现在遇到的错误。