小编She*_*hek的帖子

无法从START_ARRAY标记中反序列化java.lang.String的实例

我是Jackson解析器的新手.我的代码运行正常,直到今天.我无法弄清楚错误.

Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_ARRAY token
at [Source:  line: 1, column: 1095] (through reference chain: JsonGen["platforms"])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:163)
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:588)
at com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:90)
at com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:59)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:336)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:89)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:290)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:112)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:226)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:203)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:23)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2563)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1789)
at BossMan.candie(BossMan.java:49)
at Hilda.main(Hilda.java:81)
Run Code Online (Sandbox Code Playgroud)

以下是URL调用和对象映射器的代码:

public class BossMan {
public String[] candie () throws JsonParseException, JsonMappingException, IOException
  {
    URL jsonUrl = new URL("http://www.dishanywhere.com/radish/v20/dol/home/carousels/shows.json");

    ObjectMapper objmapper = new ObjectMapper(); …
Run Code Online (Sandbox Code Playgroud)

java jackson

22
推荐指数
1
解决办法
9万
查看次数

如何使用事件触发的 lambda 从 S3 存储桶获取最新的文件名或文件

我对 AWS 服务非常陌生,并且只有一周的无服务器架构经验,我的要求是在将新文​​件上传到特定存储桶时触发事件,一旦设置了事件触发器,我的 Lambda 应该获取最新的文件,例如名称、大小和创建日期。

源每次都将此文件上传到一个新文件夹中,并使用当前日期命名该文件夹。

到目前为止,我能够破解如何创建我的 Lambda 函数并侦听事件触发器。

这是我的代码。

import boto3
import botocore
import datetime
import logging

def lambda_handler(event, context):
    logging.info('Start function')
    s3 = boto3.resource('s3')
    DATE = datetime.datetime.today().strftime('%Y-%m-%d')
    BUCKET_NAME = 'monkey-banana-dev'
    KEY = '/banana/incoming/daily/{}'.format(DATE)
    logging.info('Getting file from {}'.format(KEY))
    try:
        s3.Bucket(BUCKET_NAME).download_file(KEY, 'name_of_my_file')
    except botocore.exceptions.ClientError as e:
        if e.response['Error']['Code'] == "404":
            print("The object does not exist.")
        else:
            raise
Run Code Online (Sandbox Code Playgroud)

在这里,因为我知道它将是今天的日期,因此我使用datetime来获取确切的 KEY 但文件名总是不同的。虽然我知道它将是一个带有 .txt 后缀的文本文件,但我无法解决如何从触发器中获取最新上传文件的名称和其他详细信息。

python amazon-s3 amazon-web-services python-3.x aws-lambda

7
推荐指数
2
解决办法
2万
查看次数

使用boto3 lib和AWS Lambda从位于S3存储桶中的压缩文件中获取数据流

我正在尝试为我的chron作业创建一个无服务器处理器.在这个作业中,我从我的一个客户端收到了我的S3存储桶中的压缩文件,文件50MB大小不一样但是一旦你解压缩它就会变得1.5GB很大而且很难限制AWS Lambda上可用的空间,500MB因为我无法从S3存储桶下载此文件并将其解压缩到我的Lambda,我成功地解压缩了我的文件并使用funzipunix脚本逐行从S3流式传输内容.

for x in $files ; do echo -n "$x: " ; timeout 5 aws s3 cp $monkeydir/$x - | funzip
Run Code Online (Sandbox Code Playgroud)

我的名字:MonkeyBusiness 关键字:/Daily/Business/Banana/{current-date} 对象:banana.zip

但是现在因为我试图使用boto3实现相同的输出,我如何将压缩内容流式传输到sys i/o并解压缩流将内容保存在单独的文件中,每行除以10000行,然后将分块文件上传回S3.需要指导,因为我是AWS和boto3的新手.

如果您需要有关该工作的更多详细信息,请与我们联系.

下面给出的建议解决方案在这里不适用,因为zlib文档明确指出所述lib与gzip文件格式兼容,我的问题是zip文件格式.

import zlib

def stream_gzip_decompress(stream):
    dec = zlib.decompressobj(32 + zlib.MAX_WBITS)  # offset 32 to skip the header
    for chunk in stream:
        rv = dec.decompress(chunk)
        if rv:
            yield rv 
Run Code Online (Sandbox Code Playgroud)

zip amazon-s3 python-3.x boto3 aws-lambda

7
推荐指数
2
解决办法
5213
查看次数

如何在 GitPython 中创建 Git 拉取请求

我正在尝试将 python 用于我的 jenkins 工作,该工作下载并刷新项目中的一行,然后提交并创建一个拉取请求,我正在尝试尽可能努力阅读 GitPython 的文档,但我的大脑无法阅读从中获得任何意义。

import git
import os
import os.path as osp


path = "banana-post/infrastructure/"
repo = git.Repo.clone_from('https://github.myproject.git',
                           osp.join('/Users/monkeyman/PycharmProjects/projectfolder/', 'monkey-post'), branch='banana-refresh')
os.chdir(path)

latest_banana = '123456'
input_file_name = "banana.yml"
output_file_name = "banana.yml"
with open(input_file_name, 'r') as f_in, open(output_file_name, 'w') as f_out:
    for line in f_in:
        if line.startswith("banana_version:"):
            f_out.write("banana_version: {}".format(latest_banana))
            f_out.write("\n")
        else:
            f_out.write(line)
os.remove("deploy.yml")
os.rename("deploy1.yml", "banana.yml")
files = repo.git.diff(None, name_only=True)
for f in files.split('\n'):
    repo.git.add(f)
repo.git.commit('-m', 'This an Auto banana Refresh, contact bannana@monkey.com',
                author='moneky@banana.com')
Run Code Online (Sandbox Code Playgroud)

提交此更改后,我正在尝试push此更改并创建一个pull request …

python github gitpython

6
推荐指数
2
解决办法
6969
查看次数

解决方法“由于:java.lang.IllegalStateException:文件被锁定:nio:/Development/hiber/data/contactmgr.mv.db [1.4.192 / 7]”

我正在尝试使用休眠模式在H2数据库中插入模拟数据,但是我面临以下错误

引起原因:java.lang.IllegalStateException:文件已锁定:nio:/Development/hiber/data/contactmgr.mv.db [1.4.192 / 7]

早些时候,我以为是因为用户名和密码属性引起的,但是即使从hibernate.cfg.xml中删除了该错误,我仍然偶然发现了该错误。

com.hibernate.demo.Application.buildSesssionFactory(Application.java:46)的com.hibernate.demo.Application。(Application.java:17)的buildMetadata(MetadataSources.java:151)原因:org.h2.jdbc。 JdbcSQLException:数据库可能已经在使用:null。可能的解决方案:关闭所有其他连接;在org.h2.mvstore的org.h2.message.DbException.get(DbException.java:168)的org.h2.message.DbException.getJdbcSQLException(DbException.java:345)使用服务器模式[90020-192]。 org.h2.mvstore.db.MVTableEngine $ Store.open(MVTableEngine.java:167)上的db.MVTableEngine $ Store.convertIllegalStateException(MVTableEngine.java:187)在org.h2.mvstore.db.MVTableEngine.init(MVTableEngine。 org.h2.engine.Database.getPageStore(Database.java:2463)处org.h2.engine.Database处的Java:99)。

这是我正在使用的hibernate.cfg.xml文件:

<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">org.h2.Driver</property>
        <property name="connection.url">jdbc:h2:./data/contactmgr</property>


        <property name="hibernate.default_schema">PUBLIC</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.H2Dialect</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema …
Run Code Online (Sandbox Code Playgroud)

java hibernate h2 spring-boot

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