我正在尝试使用Flask构build一个简单的API,现在我想在其中读取一些POST JSON。 我使用PostMan Chrome扩展来完成这个职位,而JSON我的职位只是{"text":"lalala"} 。 我尝试使用以下方法读取JSON: @app.route('/api/add_message/<uuid>', methods=['GET', 'POST']) def add_message(uuid): content = request.json print content return uuid 在浏览器上,它正确地返回了我放在GET中的uuid,但是在控制台上,它只是打印出None (我希望它打印出{"text":"lalala"} 。是否有人知道我可以如何获得从Flask方法中发布的JSON?
我的Python脚本使用subprocess调用非常嘈杂的Linux实用程序。 我想将所有的输出存储到一个日志文件,并显示给用户。 我认为以下方法可行,但是在应用程序产生大量输出之前,输出不会显示在我的应用程序中。 #fake_utility.py, just generates lots of output over time import time i = 0 while True: print hex(i)*512 i += 1 time.sleep(0.5) #filters output import subprocess proc = subprocess.Popen(['python','fake_utility.py'],stdout=subprocess.PIPE) for line in proc.stdout: #the real code does filtering here print "test:", line.rstrip() 我真正想要的行为是filter脚本打印从subprocess收到的每一行。 Sorta像什么tee ,但与Python代码。 我错过了什么? 这甚至有可能吗? 更新: 如果将一个sys.stdout.flush()添加到fake_utility.py中,则代码在python 3.1中具有所需的行为。 我使用Python 2.6。 你会认为使用proc.stdout.xreadlines()会像py3k一样工作,但是不会。 […]
我如何检索网页的链接,并复制使用Python的链接的URL地址?
我使用IPython笔记本,并希望能够select在IPython中创build2.x或3.x python笔记本。 我最初有Anaconda。 随着Anaconda一个全局环境variables不得不改变,select你想要的Python版本,然后IPython可以启动。 这不是我正在寻找的,所以我卸载了Anaconda,现在已经使用MacPorts和PiP设置了我自己的安装。 看来我还是要用 port select –set python <python version> 在Python 2.x和3.x之间切换。 这并不比python解决scheme好。 有没有办法select你想在启动IPython笔记本后使用什么版本的Python,最好用我目前的MacPorts版本?
我想检查一个variables是否存在。 现在我正在做这样的事情: try: myVar except NameError: # Do something. 有没有其他的方式没有例外?
我想比较使用Python和C ++的stdinstringinput的读取行,并且震惊地看到我的C ++代码比等效的Python代码慢了一个数量级。 由于我的C ++是生锈的,我还不是一个专家Pythonista,请告诉我,如果我做错了什么或者我误解了一些东西。 (TLDR答案:包括声明: cin.sync_with_stdio(false)或者只是使用fgets代替。 TLDR的结果:滚动到我的问题的底部,看看表。) C ++代码: #include <iostream> #include <time.h> using namespace std; int main() { string input_line; long line_count = 0; time_t start = time(NULL); int sec; int lps; while (cin) { getline(cin, input_line); if (!cin.eof()) line_count++; }; sec = (int) time(NULL) – start; cerr << "Read " << line_count […]
我已经遇到了一些问题,在代码中使用了Python中的嵌套列表bleow。 基本上,我有一个2D列表包含所有的0值,我想更新循环中的列表值。 但是,Python不会产生我想要的结果。 有什么我误解了range()和Python列表索引? some_list = 4 * [(4 * [0])] for i in range(3): for j in range(3): some_list[i+1][j+1] = 1 for i in range(4): print(some_list[i]) 我预期的结果是: [0, 0, 0, 0] [0, 1, 1, 1] [0, 1, 1, 1] [0, 1, 1, 1] 但Python的实际结果是: [0, 1, 1, 1] [0, 1, 1, 1] [0, 1, […]
好的,我试图从一个python脚本运行一个C程序。 目前我正在使用一个testingC程序: #include <stdio.h> int main() { while (1) { printf("2000\n"); sleep(1); } return 0; } 为了模拟我将要使用的程序,它不断地从传感器读取数据。 然后我试图从C程序中读取python中的subprocess的输出(在这种情况下是"2000" ): #!usr/bin/python import subprocess process = subprocess.Popen("./main", stdout=subprocess.PIPE) while True: for line in iter(process.stdout.readline, ''): print line, 但是这不起作用。 从使用print语句开始,它运行.Popen行,然后等待for line in iter(process.stdout.readline, ''): .Popen直到我按下Ctrl-C。 为什么是这样? 这正是我见过的大多数例子都是他们的代码,但是它并没有读取这个文件。 编辑: 有没有办法让它只在有东西要读的时候运行?
我正在着手做一个侧面项目,其目标是将代码从一种编程语言翻译到另一种编程语言。 我开始使用的语言是PHP和Python(从Python到PHP应该更容易一些),但理想情况下,我可以轻松地添加其他语言。 计划是: 这是面向web开发。 原始代码和目标代码将被放在框架之上(我也将写)。 这些框架将包含MVCdevise模式,并遵循严格的编码约定。 这应该使翻译更容易一些。 我也在研究IOC和dependency injection,因为它们可能会使翻译过程更容易,也更不容易出错。 我将利用Python的parsing器模块 ,它让我摆弄抽象语法树。 显然我能用PHP得到的最接近的是token_get_all() ,这是一个开始。 从那时起,我可以build立AST,符号表和控制stream程。 那我相信我可以开始输出代码了。 我不需要一个完美的翻译 。 我仍然需要查看生成的代码并修复问题。 理想情况下,翻译者应该标记有问题的翻译。 在你问“这到底是什么? 答案是…这将是一个有趣的学习经验。 如果您对如何使这个不那么艰巨的任何见解,请让我知道。 编辑: 我更感兴趣的是知道我可以在代码上执行什么样的模式,以便更易于翻译(即:IoC,SOA?)代码,而不是如何进行翻译。
import sys print (sys.platform) print (2 ** 100) raw_input( ) 我正在使用Python 3.1,无法获取raw_input来“冻结”dospopup窗口。 我正在阅读的书是2.5,而我正在使用3.1 我该怎么办才能解决这个问题?