小编mat*_*th5的帖子

Python 序列化类并使用 JsonPickle 更改属性大小写

使用 Python 和 JsonPickle,如何使用特定的大小写(例如 Camel Case、Pascal 等)序列化对象?下面的答案是手动完成的,但是寻找特定的 Jsonpickle 解决方案,因为它可以处理复杂的对象类型。

JSON 序列化一个类并使用 Python 更改属性大小写

/sf/answers/602986751/

class HardwareSystem:
    def __init__(self, vm_size):
        self.vm_size = vm_size
        self.some_other_thing = 42
        self.a = 'a'

def snake_to_camel(s):
    a = s.split('_')
    a[0] = a[0].lower()
    if len(a) > 1:
        a[1:] = [u.title() for u in a[1:]]
    return ''.join(a)

def serialise(obj):
    return {snake_to_camel(k): v for k, v in obj.__dict__.items()}

hp = HardwareSystem('Large')
print(json.dumps(serialise(hp), indent=4, default=serialise))
Run Code Online (Sandbox Code Playgroud)

python jsonpickle python-3.x

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

Python opencv 检测具有交叉点的形状

我们正在使用 Python openCV 进行形状检测。我们找到 approx_poly_dp 然后计算顶点数。然而,当对象有许多交叉点时,该过程不起作用(见下面的第二张图)。Opencv 无法检测单个物体,只能找到一个大的形状。在处理交叉点时,在给定一般图片输入的情况下,找到形状的最佳方法是什么。或者这不是 opencv 的功能,也许更适合机器学习?

    image_original = cv2.imread(file_name)
    image_gray = cv2.cvtColor(image_original, cv2.COLOR_BGR2GRAY)
    image_blur = cv2.GaussianBlur(image_gray, (5, 5), 0)
    image_morph = cv2.morphologyEx(image_blur, cv2.MORPH_OPEN, kernel)
    image_canny = cv2.Canny(image_morph, 50, 50)
    image_dilate = cv2.dilate(image_canny, kernel, iterations=2)
    image_final = cv2.erode(image_dilate, kernel, iterations=1)

    contours, hierarchy = cv2.findContours(image_final, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
    peri = cv2.arcLength(contours, True)
    approx = cv2.approxPolyDP(contours, 0.04 * peri, True)

    if len(approx) == 3:
        shape = "triangle"
    elif len(approx) == 4:
        (x, y, w, h) = cv2.boundingRect(approx)
        ar = w / …
Run Code Online (Sandbox Code Playgroud)

python opencv python-3.x

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

Java 请求日期验证:对于具有两个可变参数的任何类

我正在为请求日期约束创建共享组件,开始日期在结束日期之前。我想接受当前的验证请求,并使其通用,因此我输入(任何类的 Begin 和 EndDate 类成员),它将起作用。如何才能做到这一点?我在请求类上方、下面的 ProductRequest 中使用注释。

注意:如何在注释中设置开始和结束日期参数;它们可能并不总是“开始/结束”字段成员,有时它们可​​能是另一个类中的“开始/结束”。

@DatesRequestConstraint
public class ProductRequest {
    private Long productId;
    private DateTime startDate;
    private DateTime EndDate;
    private List<String> productStatus;
}

@Target({ TYPE, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = ProductValidator.class)
@Documented
public @interface DatesRequestConstraint {
    String message() default "Invalid dates request.";
    Class <?> [] groups() default {};
    Class <? extends Payload> [] payload() default {};
}

public class ProductValidator implements ConstraintValidator<DatesRequestConstraint, ProductRequest> {

    @Override
    public void initialize(DatesRequestConstraint constraintAnnotation) {
        ConstraintValidator.super.initialize(constraintAnnotation);
    }

    @Override
    public boolean isValid(ProductRequest productRequest, …
Run Code Online (Sandbox Code Playgroud)

java validation spring-boot

4
推荐指数
2
解决办法
2252
查看次数

Intellij 2023 IDE:始终在顶部显示菜单栏

我下载了 2023 年新的 IntelliJ Java。

查看菜单栏。我需要进行额外的点击。首先点击下面绿色框中的按钮,然后我可以看到文件菜单。我想要它像原来一样,菜单总是显示。如何才能做到这一点 ?

步骤1:

在此输入图像描述

第2步:

在此输入图像描述

每次都要额外点击一下,有点麻烦。

java intellij-idea

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

Singleton 与原型 JdbcTemplate

根据Spring 文档,JDBCTemplate 类“可以通过使用 DataSource 引用直接实例化在服务实现中使用,或者在应用程序上下文中做好准备并作为 bean 引用提供给服务”。

public class JdbcCorporateEventDao implements CorporateEventDao {

    private JdbcTemplate jdbcTemplate;

    public void setDataSource(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }

}
Run Code Online (Sandbox Code Playgroud)

我想知道,与在上下文中定义jdbctemplate为单例并直接将其注入到Dao

 public class JdbcCorporateEventDao implements CorporateEventDao {
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
            this.jdbcTemplate = jdbcTemplate;
        }
    
    }
Run Code Online (Sandbox Code Playgroud)

singleton spring jdbc spring-jdbc

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

从下拉列表中选择值后,React Material UI 自动完成,防止 OnInputChange

当人们从下拉列表中选择一个选项时,如何防止 React Material UI 不触发 onInputChange?使用下拉菜单后,它会再次重新触发 API,这是我试图阻止的。

    <Autocomplete
      options={patientOptions}
      onChange={(_event, newValue) => {
        onPatientChange(newValue);
      }}
      noOptionsText={
        <Typography>
          <Box color="text.hint">
            {patientLength === 0
              ? 'Type at least 1 character to search'
              : 'No results found.'}
          </Box>
        </Typography>
      }
      onInputChange={async (
        event: object,
        value: string,
        reason: string,
      ) => {
        setPatientLength(value.length);
        if (value.length > 0) {
          await getPatient(value, undefined).then(x => {
            setPatientOptions(x.patients);
          });
        }
      }}
      getOptionLabel={option => getPatientLabel(option)}
      renderInput={params => (
        <TextField
          value={patientValue}
          {...params}
        />
      )}
    />
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui

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

Java 将 Int Array 转换为 SortedSet

如何将 int 数组转换为 SortedSet?

以下不起作用,

SortedSet lst= new TreeSet(Arrays.asList(RatedMessage));
Run Code Online (Sandbox Code Playgroud)

错误:

无法在 java.util.TreeMap.compare(TreeMap.java:1290) 处转换​​为 java.lang.Comparable

java arrays collections spring-boot

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

SQLServer:在 uniqueidentifier guid 上搜索位置

如何在不进行表扫描的情况下在 SQLServer 表中搜索唯一标识符 guid?我应该只使用字符串还是强制转换作为唯一标识符?我在互联网上看到不同的例子。

SELECT * FROM dbo.Product
where productGuid = '321F6C1D-3B28-4880-B1ED-434D7AE299D8'

SELECT * FROM dbo.Product
where productGuid = cast('321F6C1D-3B28-4880-B1ED-434D7AE299D8' as uniqueidentifier)
Run Code Online (Sandbox Code Playgroud)

在进行文本字符串搜索时,我仍然在执行计划中看到搜索。由于我们使用的是 Java 和 JDBCTemplate,我是否应该将其强制转换为 uniqueidentifier 以确保安全?

java t-sql sql-server indexing jdbctemplate

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

Maven“mvn”命令仅以管理员身份运行,需要普通用户

我在 Windows 上正确设置 Maven,添加系统变量和路径变量。但是,mvn -v只有当我在命令行中以管理员身份登录(而不是以普通用户身份)时,才有效。这意味着我右键单击命令提示符并执行“以管理员身份运行”。如何确保 mvn 对普通用户有效?Java命令在我的电脑上没有这个问题。

在此输入图像描述

在此输入图像描述

注意:我可以在命令提示符 C:\apache-maven-3.9.1 中以普通用户身份转到实际的 Maven 文件夹并获取版本。

在此输入图像描述

java windows maven

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

IntelliJ 如何在没有 Tomcat 的情况下本地运行 API?

当我在 IntelliJ 中本地运行 Spring Boot Java 示例应用程序时,它如何在本地主机中运行 API,例如 8080(GET、POST 等)?我的桌面上什至没有安装 Tomcat。尝试了解“运行应用程序”部署的内部结构。

在此输入图像描述

更新:我一直在阅读“嵌入式 Tomcat”,但是当我用 google 搜索它时,我没有得到这意味着什么以及它与常规 Tomcat 有何不同的明确定义。

java tomcat intellij-idea spring-boot

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