我有以下输入:
[
{"id": "first", "val": 1},
{"id": "second", "val": 2},
{"id": "second", "val": 3}
]
Run Code Online (Sandbox Code Playgroud)
使用jq过滤器:。[] | select(.id ==“ second”)
我得到以下输出:
{
"id": "second",
"val": 2
}
{
"id": "second",
"val": 3
}
Run Code Online (Sandbox Code Playgroud)
我想以数组的形式获取结果。是否可以在数组中获得选择操作的多个结果值?
我从 gradle 项目迁移到 Maven 项目。单元测试曾经在 gradle 中工作,但现在我收到 UnsatisfiedLinkError 错误。
我的 build.gradle 有 -
task copyNativeDeps(type: Copy) {
from (configurations.compile+configurations.testCompile) {
include "*.dylib"
include "*.dll"
include "*.so"
}
into 'build/libs'
}
task unitTest(type: Test) {
// Set up dependent native libraries (sqllite) for running local DynamoDB
dependsOn copyNativeDeps
systemProperty "java.library.path", 'build/libs'
useJUnit {
includeCategories 'com.*.platform.identity.test.IUnitTest'
excludeCategories 'com.*.platform.identity.test.IIntegrationTest'
}
}
Run Code Online (Sandbox Code Playgroud)
为了获得相同的行为,我在 pom.xml 中添加了以下内容 -
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<executions>
<execution>
<id>copy</id>
<phase>test-compile</phase>
<configuration>
<includeScope>test</includeScope>
<includeTypes>so,dll,dylib</includeTypes>
<outputDirectory>${project.basedir}/build/libs</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<includes>
<include>**/Test*.java</include> …Run Code Online (Sandbox Code Playgroud) 我想使用python3.6解压缩以下gz压缩字符串:
H4sIAAAAAAAA//NIzcnJVwjPL8pJAQBWsRdKCwAAAA==
Run Code Online (Sandbox Code Playgroud)
解压缩的字符串是" Hello World "
我能够使用在线工具解压缩它 - http://www.txtwizard.net/compression但我找不到在python中执行此操作的正确方法.
我尝试了zlib和gzip,但它们需要字节而不是str.我也尝试使用io.Bytes()进行转换,但没有用.我的代码是:
import gzip
import io
class SearchEvents:
def decompressPayload():
payload = "H4sIAAAAAAAA//NIzcnJVwjPL8pJAQBWsRdKCwAAAA=="
payload_bytes = io.BytesIO(payload)
print(gzip.decompress(payload_bytes))
SearchEvents.decompressPayload()
Run Code Online (Sandbox Code Playgroud)
我期待" Hello World "作为输出.但是我收到以下错误:
Traceback (most recent call last):
File "SearchEvents.py", line 13, in <module>
SearchEvents.decompressPayload()
File "SearchEvents.py", line 10, in decompressPayload
payload_bytes = io.BytesIO(payload)
TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)
有没有办法实现我想要的?
我正在尝试使用多个更新表达式添加/更新表中的记录(行) -
UpdateItemSpec updateItemSpec = new UpdateItemSpec()
.withPrimaryKey("phoneNumber",phoneNumber)
.withReturnValues(ReturnValue.ALL_NEW)
.withUpdateExpression("set #tid = :tidValue")
.withUpdateExpression("set #ttl = if_not_exists(#ttl,:ttlValue)")
.withNameMap(new NameMap().with("#ttl","ttl").with("#tid", "tid"))
.withValueMap(new ValueMap().with(":ttlValue",ttl).with(":tidValue", tid));
table.updateItem(updateItemSpec);
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误 -
Exception in thread "main" com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: Value provided in ExpressionAttributeNames unused in expressions: keys: {#tid} (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: 6d8e2119-cb73-43f2-a3ab-3868ab822630)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1630)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1302)
Run Code Online (Sandbox Code Playgroud)
因此我有以下疑问 -
我有一个JSON数组conf =
[ { "fraudThreshold": 4, "fraudTTLSec": 60 }, { "fraudThreshold": 44, "fraudTTLSec": 60 } ]
Run Code Online (Sandbox Code Playgroud)
我想遍历其项目。所以我做了以下工作:
for configy in $(echo "${conf}" | jq -r ".[]"); do
echo configy=$configy
done
Run Code Online (Sandbox Code Playgroud)
结果是:-
configy={
configy="fraudThreshold":
configy=4,
configy="fraudTTLSec":
Run Code Online (Sandbox Code Playgroud)
等等。
它使用空格分割字符串,并一一给出结果。为什么bash表现出这种奇怪的行为?有什么解决办法吗?
另外,当我这样做时,它会给出适当的值:
configy=$(echo $conf | jq .[-1])
echo configy=$configy
Run Code Online (Sandbox Code Playgroud)
结果:
configy={ "fraudThreshold": 44, "fraudTTLSec": 60 }
Run Code Online (Sandbox Code Playgroud) 我将以下代码中的Model2实例上转换为Object类,然后在Model1类的测试方法中向下转换回类-Model2 。但是thenUov在向下转换后其属性值显示为null。实例在Upcasting-then-Downcasting之后松开其状态时,是否期望这样做?能否请您分享一些细节。另外,是否有一种方法可以在上传后保留实例的状态?
public class Demo{
public static void main(String[] args) {
Model1 m1 = new Model1();
m1.setAttr1(10);
Model2 m2 = new Model2();
m2.setAttr2(10);
m1.test(m2);
}
}
class Model1 {
private Integer attr1;
public Integer getAttr1() {
return attr1;
}
public void setAttr1(Integer attr1) {
this.attr1 = attr1;
}
public void test(Object o) {
Model2 m = (Model2) o;
System.out.println(m.getAttr2());
}
}
class Model2 {
private Integer attr2;
public Integer getAttr2() {
return attr2;
}
public void setAttr2(Integer attr1) …Run Code Online (Sandbox Code Playgroud)