我将字典从我的视图传递给模板.所以{"key1":"value1","key2":"value2"}传入并循环遍历键,值对很好,但是我没有找到一个优雅的解决方案,直接从特定键的视图访问"key1",例如bu json.items ["key1"].我可以使用一些if/then语句,但我宁愿做直接有一种方法吗?
这是html模板中的循环代码:
{% for key, value in json.items %}
<li>{{key}} - {{value}}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud) 我使用了很多N维数组,并且编写这样的缩进代码会很麻烦,我知道一些代码可以用列表推导和内联语句替换.例如:
for x in (0,1,2,3):
for y in (0,1,2,3):
if x < y:
print (x, y, x*y)
Run Code Online (Sandbox Code Playgroud)
可以替换为:
print [(x, y, x * y) for x in (0,1,2,3) for y in (0,1,2,3) if x < y]
Run Code Online (Sandbox Code Playgroud)
但是我怎么能改变动作而不是打印来做其他事情:
total = x+y
Run Code Online (Sandbox Code Playgroud)
所以我想做的是:
[(total+=x+y) for x in (0,1,2,3) for y in (0,1,2,3) if x < y]
Run Code Online (Sandbox Code Playgroud)
但这不起作用
是否有一种聪明的方法来做到这一点,而不是:
for x in (0,1,2,3):
for y in (0,1,2,3):
if x < y:
total+=x+y
Run Code Online (Sandbox Code Playgroud) 尽管阅读了人们的答案,说明排序是先完成的,但证据显示的不同之处在于排序之前的限制.有没有办法强制排序总是先?
views = mongo.db.view_logging.find().sort([('count', 1)]).limit(10)
Run Code Online (Sandbox Code Playgroud)
无论我使用.sort().limit()or .limit().sort(),限制都优先.我想知道这是否与pymongo...有关...
我正在尝试在heroku上安装自定义构建,所以我使用各种方法尝试使用buildpacks进行第三方安装.在我的.buildpacks文件中,我有:
https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-python.git
Run Code Online (Sandbox Code Playgroud)
在我的Aptfile我有以下内容:libgeoip-dev这是geoip的先决条件,与requirements.txt(GeoIP==1.3.2)一起安装
这是我的环境变量:
remote: C_INCLUDE_PATH is /app/.heroku/vendor/include:/app/.heroku/vendor/include:/app/.heroku/python/include
remote: CPATH is /tmp/build_xxxxx/.apt/usr/include:
remote: LD_LIBRARY_PATH is /app/.heroku/vendor/lib:/app/.heroku/vendor/lib:/app/.heroku/python/lib
Run Code Online (Sandbox Code Playgroud)
我得到的错误消息是:
remote: building 'GeoIP' extension
remote: creating build
remote: creating build/temp.linux-x86_64-2.7
remote: gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/app/.heroku/python/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
remote: creating build/lib.linux-x86_64-2.7
remote: gcc -pthread -shared build/temp.linux-x86_64-2.7/py_GeoIP.o -lGeoIP -o build/lib.linux-x86_64-2.7/GeoIP.so
remote: /usr/bin/ld: cannot find -lGeoIP
remote: collect2: error: ld returned 1 exit status
remote: …Run Code Online (Sandbox Code Playgroud) 我正在密谋,但发现我需要增加图表下方的区域,以便我可以垂直绘制标签,但字体大小不是那么小.目前,我有:
plt.figure(count_fig) fig, ax = plt.subplots()
rects1 = ax.bar(ind, ratio_lst, width, color='r', linewidth=1, alpha=0.8, log=1)
ax.set_ylabel('')
ax.set_title('')
ax.set_xticks(ind_width)
ax.set_xticklabels(labels_lst, rotation='vertical', fontsize=6)
Run Code Online (Sandbox Code Playgroud)
目前它的工作原理,但标签经常在情节的边缘流失.
只是为了让事情变得棘手,我想使用来自rabbitMQ队列的消息.现在我知道有一个针对兔子的MQTT插件(https://www.rabbitmq.com/mqtt.html).
但是,我似乎无法在Spark消耗由pika生成的消息的情况下进行示例工作.
例如,我在这里使用简单的wordcount.py程序(https://spark.apache.org/docs/1.2.0/streaming-programming-guide.html),看看我是否可以在下面看到一个消息生产者办法:
import sys
import pika
import json
import future
import pprofile
def sendJson(json):
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='analytics', durable=True)
channel.queue_bind(exchange='analytics_exchange',
queue='analytics')
channel.basic_publish(exchange='analytics_exchange', routing_key='analytics',body=json)
connection.close()
if __name__ == "__main__":
with open(sys.argv[1],'r') as json_file:
sendJson(json_file.read())
Run Code Online (Sandbox Code Playgroud)
Sparkstreaming 消费者如下:
import sys
import operator
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.mqtt import MQTTUtils
sc = SparkContext(appName="SS")
sc.setLogLevel("ERROR")
ssc = StreamingContext(sc, 1)
ssc.checkpoint("checkpoint")
#ssc.setLogLevel("ERROR")
#RabbitMQ
"""EXCHANGE = 'analytics_exchange'
EXCHANGE_TYPE = 'direct'
QUEUE …Run Code Online (Sandbox Code Playgroud) 我安装了WiredTiger,但发现我无法使用标准启动数据库:
sudo service mongod start
Run Code Online (Sandbox Code Playgroud)
看来我查看日志文件(tail /var/log/mongodb/mongod.log):
2016-08-01T14:48:12.029+0200 I CONTROL [main] ***** SERVER RESTARTED *****
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] MongoDB starting : pid=1238 port=27017 dbpath=/var/lib/mongodb 64-bit host=xxx
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] db version v3.2.8
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] git version: ed70e33130c977bda0024c125b56d159573dbaf0
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g-fips 1 Mar 2016
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] allocator: tcmalloc
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] modules: enterprise
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] build environment:
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] distmod: ubuntu1604
2016-08-01T14:48:12.032+0200 I CONTROL [initandlisten] …Run Code Online (Sandbox Code Playgroud) 由于冲突,我一直在尝试从机器断开连接或删除我的凭据.但是,在连接到远程TFS服务器时,我被要求提供凭据,我无法找到退出TFS的方法并使用新凭据登录以进行解析.如何删除凭据或只是以其他用户身份登录TFS.由于我们存在映射冲突问题,这让我们感到疯狂.
目前,TFS和VS的登录与机器的登录不同.有没有办法我可以重新开始.
谷歌现在因为不那么适合移动设备而受到惩罚.因此,为了使事情变得更好,它建议我使用Gzip或Deflate压缩我的大量Javascript.我已经看到了一些关于堆栈溢出的旧建议,但没有任何开箱即用的东西,我试图搜索附加组件,但到目前为止似乎没有什么可以做到这一点.压缩或启用gzip最不痛苦和最强大的是什么?
以下是Google建议我做的事情:
启用压缩使用gzip或deflate压缩资源可以减少通过网络发送的字节数.为以下资源启用压缩,将传输大小减少420KiB(减少74%).
我正在使用Django,如果这更容易.
我似乎在努力寻找删除文档的正确方法.即我应该使用remove()或delete_one(),以及通过id删除的规范方法是什么,这是一个string.
即我应该使用以下内容:
mongo.db.xxx.delete_one({'_id': { "$oid" : str(_id) } })
Run Code Online (Sandbox Code Playgroud)
或者我可以使用其他格式?
mongo.db.xxx.remove({'_id': { "$oid" : str(_id) } })
mongo.db.xxx.remove({'_id': ObjectId(_id) })
Run Code Online (Sandbox Code Playgroud)
什么是规范形式?