我想做一个匹配多个值(值数组)的搜索,如下所示:
var result1 = _client.Search<type1>(s => s
.Fields(f => f.trip_id)
.Query(q => q
.Terms(t => t.arg1, value1)).Take(_allData))
.Documents.Select(d => d.arg2).ToArray();
var result2 = _client.Search<type2>(s => s
.Query(q => q
.Terms(t => t.arg3, result1))
.Take(_allData)
).Documents.Select(s => s.ar3).ToList();
Run Code Online (Sandbox Code Playgroud)
我能怎么做 ?我在思考方面,但我不知道如何做到这一点.现在唯一可行的方法是使用foreach迭代器,但这并不是真正有效的...
谢谢你的帮助.
我可以得到一个迭代器的块,如下所示:
def get_chunks_it(l, n):
""" Chunks an iterator `l` in size `n`
Args:
l (Iterator[Any]): an iterator
n (int): size of
Returns:
Generator[Any]
"""
iterator = iter(l)
for first in iterator:
yield itertools.chain([first], itertools.islice(iterator, n - 1))
Run Code Online (Sandbox Code Playgroud)
现在假设我有一个异步生成器(python 3.6):
async def generator():
for i in range(0, 10):
yield i
await asyncio.sleep(1)
Run Code Online (Sandbox Code Playgroud)
我怎么能得到结果的块(让我们说大小3会产生[0,1,2],[3,4,5],[6,7,8],[9]),async_generator这样我才能写出来:
async for chunk in get_chunk_it_async(generator(), 3):
print(chunk)
Run Code Online (Sandbox Code Playgroud) 我正在尝试两种方法来阻止无限循环运行:
虽然supervisor_2不会引发中断时,在任何错误,我不能让supervisor_1从得到Task was destroyed but it is pending!。知道为什么吗?
这是代码:
import asyncio
import aioredis
from functools import partial
class Listener:
def __init__(self, redis_conn):
self.redis_conn = redis_conn
async def forever(self, loop_name):
counter = 0
try:
while True:
print('{}: {}'.format(loop_name, counter))
counter += 1
await asyncio.sleep(1)
except asyncio.CancelledError:
print('Task Cancelled')
self.redis_conn.close()
await self.redis_conn.wait_closed()
async def supervisor_1(redis_conn):
redis_conn = await redis_conn
l = Listener(redis_conn)
task = asyncio.ensure_future(
asyncio.gather(l.forever('loop_1'),
l.forever('loop_2')))
await asyncio.sleep(2) …Run Code Online (Sandbox Code Playgroud) 将对象类型转换为对象数组(每个对象都包含该对象的一个键)的正确方法是什么?
\n\n比如我想改造
\n\ntype MyObjectType = {\n foo: number,\n bar: string\n}\nRun Code Online (Sandbox Code Playgroud)\n\n进入
\n\ntype MyObjectArrayType = { key: 'foo', value: number}\xc2\xa0| { key: 'bar', value: string}\nRun Code Online (Sandbox Code Playgroud)\n\n这样我就可以做
\n\nconst objects: MyObjectArrayType[] = [{key: 'foo', value: 2}, {key: 'bar', value: 'baz'}]\nRun Code Online (Sandbox Code Playgroud)\n\n我在想类似的事情
\n\ntype MyObjectArrayType<K extends keyof MyObjectType> = { value: MyObjectType[K], key: K }\nRun Code Online (Sandbox Code Playgroud)\n\n但无法让它像我想要的那样工作。
\n我有以下结构和代码:
project/
app.py
templates/
/index.html
static/
/angular.js
Run Code Online (Sandbox Code Playgroud)
的index.html
<!doctype html>
<html ng-app="myApp">
<head>
<meta charset="utf-8"/>
<title>My App</title>
</head>
<body ng-controller="myCtrl as ctrl">
<div>
{{ctrl.foo}}
</div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js"></script>
<script type="text/javascript">
angular.module('myApp', [])
.controller('myCtrl', [function () {
var self = this;
self.foo = 10;
}]);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和app.py.
from flask import Flask
app = Flask(__name__)
from flask import render_template
@app.route('/')
def hello_world():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
无论我做什么,我仍然有以下错误:UndefinedError: 'ctrl' is undefined我猜是因为Flask没有加载angular.js
我也试过静态路径 …
我正在努力useMemo(或React.memo)优化某些组件的渲染。
我有一个我无法解释的问题。
我有以下代码:
[...]
const [ cards, setCards ] = useState<Card[]>([])
function addCard(){
setCards([...cards, {name: 'card-' + cards.length, counter: 0, type: 'memo'}])
}
function onPressCard(index: number){
cards[index].counter += 1
setCards([...cards])
}
return (
[...]
{
cards.map((x, index) =>
<Card key={index} {...x} onPress={() => onPressCard(index)}/>
}
[...]
)
Run Code Online (Sandbox Code Playgroud)
和卡定义为
const Card: FC<CardProps> = function({ name, counter, onPress }){
const counterRef = useRef(0)
const item = useMemo(() => {
counterRef.current +=1
return (
<RectButton onPress={onPress} style={[styles.card, …Run Code Online (Sandbox Code Playgroud) 我是芹菜的新手,并开始了解它是如何工作的。但是我在理解如何从类方法内部更新状态时遇到了一些麻烦。
views.py
@app.route('/',methods=['POST'])
def foo_bar():
task = foo_async.apply_async()
return json.dumps({}),202
Run Code Online (Sandbox Code Playgroud)
background_task.py
@celery.task(bind=True)
def foo_async(self):
t = Test()
t.run()
return json.dumps({'progress':100})
Run Code Online (Sandbox Code Playgroud)
test.py
class Test(Task):
def __init__(self):
self.foo = 'bar'
def run(self):
for i in range(0,10):
print 'Current : ',i
self.update_state(state='PROGRESS',meta={'current':i})
time.sleep(4)
Run Code Online (Sandbox Code Playgroud)
但是我发出请求后收到此错误:
[...] return task_id.replace('-','')
AttributeError: 'NoneType' object has no attribute 'replace'
Run Code Online (Sandbox Code Playgroud)
因此,我看到问题出在关于ID的问题,但我不知道如何解决。
也许有更好的方法从我的方法中获取更新?
我有以下类型和转换功能:
type LeftRightField = null |
{ left: null, right: number } |
{ left: number, right: null } |
{ left: number, right: number }
type LeftRightArray = [null, number] |
[number, null] |
[number, number] |
null
const fmtField = function (field: LeftRightField): LeftRightArray {
const rightField = field?.right ?? null
const leftField = field?.left ?? null
return (leftField == null && rightField == null) ? null : [leftField, rightField]
}
Run Code Online (Sandbox Code Playgroud)
然而这失败了
输入'号码| null' 不可分配给类型 'null'。
类型 …
python ×4
flask ×2
typescript ×2
angularjs ×1
async-await ×1
asynchronous ×1
c# ×1
celery ×1
javascript ×1
nest ×1
python-3.x ×1
react-native ×1
reactjs ×1