小编use*_*726的帖子

在数组中输出选择操作的结果-JQ

我有以下输入:

[
  {"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)

我想以数组的形式获取结果。是否可以在数组中获得选择操作的多个结果值?

bash jq

5
推荐指数
1
解决办法
2046
查看次数

DynamoDBLocal 测试中出现错误:com.almworks.sqlite4java.SQLiteException:[-91] 无法加载库:java.lang.UnsatisfiedLinkError

我从 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)

java sqlite macos android

5
推荐指数
0
解决办法
1712
查看次数

使用Python3.6解压缩gz压缩字符串

我想使用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)

有没有办法实现我想要的?

compression gzip zlib python-3.x

2
推荐指数
1
解决办法
2688
查看次数

Dynamo DB:UpdateItemSpec:多个更新表达式 - 不起作用

我正在尝试使用多个更新表达式添加/更新表中的记录(行) -

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)

因此我有以下疑问 -

  1. UpdateItemSpec 是否不允许多个更新表达式?
  2. 有没有办法提供多个SET操作?
  3. 如果有办法的话,操作本质上会是原子的吗?

java amazon-dynamodb aws-sdk

2
推荐指数
1
解决办法
4799
查看次数

循环遍历json数组不起作用-JQ

我有一个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)

bash jq

0
推荐指数
1
解决办法
702
查看次数

在向上转换然后向下转换之后,对象是否会丢失其属性值?

我将以下代码中的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)

java downcast upcasting

0
推荐指数
1
解决办法
46
查看次数