我正在使用Python和psycopg2来连接到postgres.
当我插入一行...
sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("
sql_string += hundred_name + ", '" + hundred_slug + "', " + status + ");"
cursor.execute(sql_string)
Run Code Online (Sandbox Code Playgroud)
...如何获取我刚刚插入的行的ID?试:
hundred = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)
使用时返回错误RETURNING id:
sql_string = "INSERT INTO domes_hundred (name,name_slug,status) VALUES ("
sql_string += hundred_name + ", '" + hundred_slug + "', " + status + ") RETURNING id;"
hundred = cursor.execute(sql_string)
Run Code Online (Sandbox Code Playgroud)
简单地回来None.
更新:也是如此currval(即使将此命令直接用于postgres工作):
sql_string = "SELECT currval(pg_get_serial_sequence('hundred', 'id'));"
hundred_id = cursor.execute(sql_string)
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议吗?
谢谢!
我正在尝试让 Next JS 项目更加清晰。我关注了一些在线资源,这些资源显示可以通过以下方式添加 Google 标签管理器/Clarity 的脚本。
文件:app.tsx
<Script
id="clarity"
strategy="afterInteractive"
dangerouslySetInnerHTML={{
__html: `
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", '${CLARITY_KEY}');`,
}}
/>
Run Code Online (Sandbox Code Playgroud)
此代码成功触发并正在获取另一个脚本文件,该文件在执行时抛出错误。下面是 Clarity 调用并抛出错误的脚本:
!function(c, l, a, r, i, t, y) {
if (a[c].v || a[c].t)
return a[c]("event", c, "dup." + i.projectId);
a[c].t = !0,
(t = l.createElement(r)).async = !0,
t.src = "https://www.clarity.ms/eus2-f/s/0.6.34/clarity.js",
(y = l.getElementsByTagName(r)[0]).parentNode.insertBefore(t, y),
a[c]("start", i),
a[c].q.unshift(a[c].q.pop())
}("clarity", document, window, "script", {
"projectId": "XmaskedX",
"upload": "https://www.clarity.ms/eus2-f/collect",
"expire": 365,
"cookies": ["_uetmsclkid", "_uetvid"],
"track": true, …Run Code Online (Sandbox Code Playgroud) 有没有办法在单个查询中列出每个集合的所有集合名称和文档计数?
我能找到的那个只给出了特定集合的计数.例如,如果Users是一个集合那么
db.Users.count()
Run Code Online (Sandbox Code Playgroud)
会给我计算集合中的文档数量Users.
我想使用PyMongo在MongoDB中的字段中查找子字符串.
以下查询工作正常,是我需要的:
db.collection.find({ "Animal": /cat|Dog/i})
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试/cat|Dog/i在Python 中将值作为字符串传递,则它不起作用.
有没有办法在PyMongo中复制查询?
注意:/cat|Dog/i是来自另一个集合的字段的值.它的形式是"猫狗".基本上,我想将一个字段中的子字符串与另一个字段中的子字符串匹配.
有没有办法根据正则表达式或 AWS SNS 中的子字符串过滤消息?
用于过滤消息的 AWS 文档提到了三种类型的字符串过滤:
我想根据消息中的子字符串过滤掉消息,例如
我有一个 S3 事件,它在向 S3 添加新对象时向 SNS 发送消息,消息内容如下:
{
"Records": [
{
"s3": {
"bucket": {
"name": "images-bucket"
},
"object": {
"key": "some-key/more-key/filteringText/additionaldata.png"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果关键字段中只存在filteringText,我想保留消息。
注意:整个消息由 S3 通知服务作为文本发送,因此 Records 不是 json 对象而是字符串。
据我所知,Lambdas用于监听事件并运行一段代码来响应这些事件.
事件需要是AWS服务或HTTP端点.如果我在EC2服务器上运行RabbitMq服务(不使用SQS),是否可以在Lambda上部署消费者?
如果可能的话,这是正确的做法吗?
此外,由于lambdas是在计算时间计费的,所以我不应该在队列空闲时付费,对吗?
AWS API Gateway提供了一种使用针对不同用户的使用计划对请求进行速率限制的方法.
但速率限制适用于所有终点.那么,如果我有一个GET请求和另一个POST请求端点,我可以为GET请求设置不同的限制并单独限制POST请求吗?
例:
GET请求端点
https://aws.api.gateway/v1/get_data <- set rate limit to 10,000
Run Code Online (Sandbox Code Playgroud)
POST请求端点
https://aws.api.gateway/v1/post_data <- set rate limit to 100
Run Code Online (Sandbox Code Playgroud)
POST请求是一项代价高昂的操作,因此我希望限制特定用户的请求数量,同时允许大量GET请求.
要求基本上是对2个不同的终点有2个不同的速率限制.
我有一个带有一些虚拟电子邮件地址的列表如下:
listEmails = ['brian-23@email.com', 'britts_54@email.com', 'lara$@email.com']
Run Code Online (Sandbox Code Playgroud)
我试图使用lambda并filter获取有效电子邮件地址列表.我们假设lara$@email.com是唯一无效的电子邮件地址.
我使用正则表达式使用以下代码过滤掉无效的电子邮件.
listValid = list(filter(lambda x: x if re.match(r"^[A-Za-z0-9\.\+_-]+@[A-Za-z0-9\._-]+\.[a-zA-Z]{0,3}$",x) ,listEmails))
Run Code Online (Sandbox Code Playgroud)
我已经在陆续收到一个语法错误,之前listEmails)).
一般来说,lambda函数取值逗号(后,)作为输入值,所以我不知道,如果lambda功能是假设x从re.match(r"^[A-Za-z0-9\.\+_-]+@[A-Za-z0-9\._-]+\.[a-zA-Z]{0,3}$",x)作为输入值.
具有if条件的Lambda函数可以从以下情况得出:
from functools import reduce
f = lambda a,b: a if (a > b) else b
reduce(f, [47,11,42,102,13])
Run Code Online (Sandbox Code Playgroud)
所以,我想知道为什么它不适合我的情况?
注意:由于我在lambda函数本身出错,我没有评估是否list(filter(会返回所需的结果.
我想在为自动缩放架构创建ec2实例时获取AWS Linux计算机的最新ami id。
我正在尝试使用awscli获取图像类型,但是如果使用该describe-images命令,它将打印出很多信息。
我的要求是仅获取映像ID,以便可以使用它来创建启动配置或使用最新的ami-id启动实例。
从我的 bash 提示符执行此操作的最简单方法是什么?
我知道我可以使用以下方法删除数据库:
mongo <dbname> --eval "db.dropDatabase()"
Run Code Online (Sandbox Code Playgroud)
我想最好在 shell 脚本或 python 脚本中而不是在 mongodb 控制台中对集合执行相同的操作。
我想要实现的是首先获取mongodump集合,然后drop获取集合:
我用于转储的命令:
mongodump --db database --collection collection_03-11-2016 --out /home/mongodump
Run Code Online (Sandbox Code Playgroud) python ×5
mongodb ×3
regex ×2
amazon-ec2 ×1
autoscaling ×1
aws-lambda ×1
bash ×1
filter ×1
lambda ×1
ms-clarity ×1
next.js ×1
postgresql ×1
psycopg2 ×1
pymongo ×1
python-3.5 ×1
python-3.x ×1
rabbitmq ×1
type-hinting ×1