小编Gok*_*oku的帖子

将字符串输出格式化为 JSON

我正在使用 FastAPI 和 Structlog,想要测试日志格式并将其从纯文本/字符串转换为 JSON 格式,以便日志聚合器平台具有更好的可读性和处理能力。面临某些日志输出以 JSON 形式提供但以纯字符串形式存在的情况。

电流输出

INFO:     127.0.0.1:62154 - "GET /api/preface HTTP/1.1" 200 OK
INFO:     127.0.0.1:62154 - "GET /loader.json HTTP/1.1" 200 OK
INFO:     127.0.0.1:62155 - "GET /hello_world HTTP/1.1" 200 OK
{"key":"test_key","message":"Push to NFS Success","event":"Testing Fast API..","logger":"test_my_api","filename":"main.py","func_name":"Hello_World","process":23760,"module":"docker","thread":23140,"pathname":"D:\\my_work\\fast_api\\main.py","process_name":"SpawnProcess-1","level":"info","time-iso":"2023-06-30T15:25:03.113400Z"}
Run Code Online (Sandbox Code Playgroud)

预期输出:

    {
    "level": "INFO",
    "IP": "127.0 .0 .1: 62154",
    "method": "GET",
    "endpoint": "/loader.json",
    "protocol": "HTTP / 1.1",
    "status_code": 200,
    "status": "OK"
}
    {
    "level": "INFO",
    "IP": "127.0 .0 .1: 62155",
    "method": "GET",
    "endpoint": "/api/preface",
    "protocol": "HTTP / 1.1",
    "status_code": 200,
    "status": …
Run Code Online (Sandbox Code Playgroud)

python structlog fastapi

7
推荐指数
1
解决办法
881
查看次数

Job DSL 中的条件循环

我将构建类型即 Maven Job 或 Freestyle 作业作为输入参数(使用构建参数化插件)并根据输入条件创建相应的作业

我的输入参数: "maven" (to create Maven job) ,else 阻止自由式作业。

if(params[build_type]=="maven"){
    mavenJob('example') {
        using(template_job)
          scm { 
            svn {
              location(svn_url)
            }
          } 
       } 
}
freeStyleJob('example') {
        using(template_job)
          scm { 
            svn {
              location(svn_url)
            }
          } 
       } 
Run Code Online (Sandbox Code Playgroud)

我正面临以下错误消息,我对 groovy 很陌生,所以请原谅。期待任何建议。谢谢。

处理提供的 DSL 脚本错误:(脚本,第 1 行)没有这样的属性:类的参数:脚本

groovy jenkins jenkins-job-dsl

6
推荐指数
1
解决办法
3228
查看次数

Gradle 是否支持为一个编译时依赖项定义不同的存储库?

下面是我的 gradle 文件的片段,我想要实现的是,对于依赖项工件 - com.google.code.gson:2.8.2 来说,应该从另一个存储库中获取,而不是从存储库中提到的存储库中获取部分 ?是否可以 ?

比如说, com.google.code.gson:2.8.2 应该仅从 https://internal-repo-url/artifactory/second-repo 获取,而不是 https://internal-repo-url/artifactory/first-repo 。

buildscript {
    repositories {
        mavenLocal()
        maven {
            url 'https://internal-repo-url/artifactory/first-repo'
        }
    }

apply plugin: 'com.choko-build'

dependencies {

    compile group: 'org.influxdb', name: 'influxdb-java', version: '2.20'
    compile ('org.repo.strung:javacontainer:1.8.16') {
        exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
        exclude group: 'com.google.code.gson', module: 'gson'
    }
    compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13'
    compile group: 'com.google.code.gson', name: 'gson', version: '2.8.2'
Run Code Online (Sandbox Code Playgroud)

gradle

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

没有这样的文件或目录@ rb_sysopen ruby

即使文件夹中存在该文件,也要面对以下问题。

H:\Ruby_test_works>ruby hurrah.rb
hurrah.rb:7:in `read': No such file or directory @ rb_sysopen - H:/Ruby_
test_works/SVNFolders.txt (Errno::ENOENT)
        from hurrah.rb:7:in `block in <main>'
        from hurrah.rb:4:in `each_line'
        from hurrah.rb:4:in `<main>'
Run Code Online (Sandbox Code Playgroud)

输入文件(input.txt)列之间用制表符分隔。

10.3.2.021.asd  10.3.2.041.def  SVNFolders.txt
SubversionNotify    Subversionweelta    post-commit.bat
Commit message  still rake  customemail.txt
mckechney.com   yahoo.in    ReadMe.txt
Run Code Online (Sandbox Code Playgroud)

代码:

dir = 'H:/Ruby_test_works'
file = File.open("#{dir}/input.txt", "r")

file.each_line do |line|
  initial, final, file_name = line.split("\t")
  #puts file_name
  old_value = File.read("#{dir}/#{file_name}")

  replace = old_value.gsub( /#{Regexp.escape(initial)}, #{Regexp.escape(final)}/)
  File.open("#{dir}/#{file_name}", "w") { |fi| fi.puts replace }

end
Run Code Online (Sandbox Code Playgroud)

我尝试过使用正斜杠和反斜杠,但没有运气。我所缺少的,不确定。谢谢。

puts file_name 给出以下值 …

ruby

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

展平嵌套字典

输入:

my_list = [
{'Name':'Jack', 'Surname': 'Reacher', 'Blogs':{'BlogName': 'python2', 'Date':'20200101' }},
{'Name':'Jack2', 'Surname': 'Reacher2', 'Blogs':{'BlogName':'Python3','Date':'20200201'}}
]
Run Code Online (Sandbox Code Playgroud)

预期输出:

arr_1 = [ {'Name':'Jack', 'Surname':'Reacher'}, {'Name':'Jack2', 'Surname':'Reacher2'} ]

arr_2 = [ {'ParentId':'Jack', 'BlogName':'python2','Date1':'20200101'},
          {'ParentId':'Jack2','BlogName':'Python3','Date1':'20200201'} ]
Run Code Online (Sandbox Code Playgroud)

我得到的输出:

arr_1 = [ {'Name': 'Jack'}, {'Surname': 'Reacher'}, {'Name': 'Jack2'}, {'Surname': 'Reacher2'} ]

arr_2 = [{'ParentId': 'Jack'}, {'BlogName': 'python2', 'Date': '20200101'}, 
         {'ParentId': 'Jack2'}, {'BlogName': 'Python3', 'Date': '20200201'}]
Run Code Online (Sandbox Code Playgroud)

我应该如何展平 'arr_2' 的字典?

for lis in my_list:
    for k, v in lis.items():
        if not k == 'Blogs':
            arr_1.append({k:v})

for lis in …
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×2

fastapi ×1

gradle ×1

groovy ×1

jenkins ×1

jenkins-job-dsl ×1

ruby ×1

structlog ×1