V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zhoudaiyu  ›  全部回复第 24 页 / 共 77 页
回复总数  1522
1 ... 20  21  22  23  24  25  26  27  28  29 ... 77  
2021-08-25 13:19:41 +08:00
回复了 MiketsuSmasher 创建的主题 Python 如何把 Java properties 转换为具有层级结构的字典
@zhoudaiyu #26 忽略 dict_filter 这个方法,没有引用忘了删了
2021-08-25 13:17:32 +08:00
回复了 MiketsuSmasher 创建的主题 Python 如何把 Java properties 转换为具有层级结构的字典
@zhoudaiyu #25 为啥不支持 markdown....换下 gist....https://gist.github.com/BiTree/f21adc0e6ce67c18784690dfbaf15af8
2021-08-25 13:13:24 +08:00
回复了 MiketsuSmasher 创建的主题 Python 如何把 Java properties 转换为具有层级结构的字典
Python 简单搞了一下,不支持这种不满足 json 定义的格式的,比如'java.vendor.url': 'https://openjdk.java.net/' 和 'java.vendor.url.bug': 'https://bugreport.java.com/bugreport/'
```py
import re
import json


ori = """{'java.class.version': '60.0',
'java.home': '/usr/lib/jvm/java-16-openjdk',
'java.runtime.name': 'OpenJDK Runtime Environment',
'java.runtime.version': '16.0.2+7',
'java.specification.name': 'Java Platform API Specification',
'java.specification.vendor': 'Oracle Corporation',
'java.specification.version': '16',
'java.vendor.url.bug.b': 'https://bugreport.java.com/bugreport/',
'java.version.date': '2021-07-20',
'java.vm.name': 'OpenJDK 64-Bit Server VM',
'java.vm.specification.name': 'Java Virtual Machine Specification',
'java.vm.specification.vendor': 'Oracle Corporation',
'java.vm.specification.version': '16',
'java.vm.vendor': 'Oracle Corporation',
'java.vm.version': '16.0.2+7',
'sun.arch.data.model': '64'}"""


prop_regex = re.compile("'(?P<key>.*)':\s*'(?P<value>.*)'\s*")


def dict_filter(dic: dict, _str: str) -> dict:
ret_dict = dict()
for k in dic.keys():
if k != _str:
ret_dict[k] = dic[k]
return ret_dict


def get_deepest_dict(dic: dict, keys: list) -> dict:
_dic = dict()
_dic = dic
for i in keys:
_dic = _dic[i]
return _dic


def prop2json_converter(src_str: str) -> str:
"""
Convert property string to json string.
:param src_str: source property string
:return: a wrapped json string
"""
try:
_dict = dict()
ret_dict = dict()
for ln in src_str.split("\n"):
matched_k_v = prop_regex.search(ln)
if matched_k_v:
_dict[matched_k_v.groupdict().get("key")] = matched_k_v.groupdict().get("value")
for k, v in _dict.items():
for cnt, kk in enumerate(k.split(".")):
_l = k.split(".")[:cnt]
if cnt != len(k.split(".")) - 1:
if not _l:
ret_dict.setdefault(kk, dict())
else:
_r = get_deepest_dict(ret_dict, _l)
_r.setdefault(kk, dict())

else:
if not _l:
ret_dict.setdefault(kk, v)
else:
_r = get_deepest_dict(ret_dict, _l)
_r[kk] = v

except (TypeError, AttributeError):
return json.dumps({"data": None, "err": "Invalid input string"}, ensure_ascii=False, indent=4)
return json.dumps({"data": ret_dict, "err": ""}, ensure_ascii=False, indent=4)


if __name__ == '__main__':
print(prop2json_converter(ori))
@billlee #8 但是防火墙为什么要返回 ICMP 的响应而不是通过发送 RST 呢
@billlee 抱歉抱歉,我搞错了,刚才脑子不清醒,确实是 RST
@billlee TCP 是 Connection Refused
@xiaopc 就是 TCP 层没有字段表示端口不可达,而低一层的 IP 层可以通过 ICMP 协议可以表示不可达,所以就让 ICMP 代劳了?
@xiaopc #1 我的理解 ICMP 只管包从 A 是否路由到了 B,不管上层协议啊
2021-08-24 14:11:28 +08:00
回复了 MiketsuSmasher 创建的主题 Python 如何把 Java properties 转换为具有层级结构的字典
@dongfangshangren #12
@RRRoger #16
@misaka19000 #7 我可能太菜了,用 python 写了 1 个小时都没写出来😂
2021-08-24 12:04:54 +08:00
回复了 shm7 创建的主题 生活 夏天过快过去了,西瓜的预算快要花不完了
买瓜皮子和瓜粒子都是金子做的生瓜蛋子🐶
2021-08-24 10:22:30 +08:00
回复了 shangwuli 创建的主题 Linux Linux 运维,真的很累吗?
运维本身没啥累的,主要是乱七八糟的事比较多,还得应付开发甩过来的锅
2021-08-23 11:29:12 +08:00
回复了 zhoudaiyu 创建的主题 Linux extX(X=2,3,4)等文件系统的数据盘也需要预留 5%的空间吗?
@jim9606 看来对 ssh 倒是没啥影响
2021-08-22 14:36:12 +08:00
回复了 zhoudaiyu 创建的主题 Linux extX(X=2,3,4)等文件系统的数据盘也需要预留 5%的空间吗?
@Remember 我是小弟,我说不好使啊
2021-08-22 11:39:45 +08:00
回复了 byzf 创建的主题 程序员 闲来无事,求推荐点三个月左右能入门的兴趣爱好、技术方向
街舞,popping
2021-08-20 17:08:09 +08:00
回复了 zhoudaiyu 创建的主题 Linux extX(X=2,3,4)等文件系统的数据盘也需要预留 5%的空间吗?
@heyjei #1 太感谢了,看来是没啥事,大哥你是咋搜到的啊
@privil #2 感谢,看了 1 楼大哥的回答,看来是没什么影响
2021-08-20 13:13:32 +08:00
回复了 zhoudaiyu 创建的主题 问与答 关于 Mac 数据备份的问题想请教一下大家
@efcndi #1
@Xusually #2 其实我是要离职了,然后备份一下公司的 Mac...也就备份这一次
2021-08-19 13:34:48 +08:00
回复了 vzyw 创建的主题 程序员 大家来推荐几本对职业生涯影响较大的技术书籍
@xzysaber 我们线上环境内核太低了,没法玩 BPF :( 不过感谢推荐 :)
2021-08-18 10:39:31 +08:00
回复了 zhoudaiyu 创建的主题 程序员 怎么能用更舒服的方式看比较厚的实体书?
@jorneyr #11 举着书读太累了,当然比较薄的除外
2021-08-18 10:38:35 +08:00
回复了 zhoudaiyu 创建的主题 程序员 怎么能用更舒服的方式看比较厚的实体书?
@bomb77 #9 是时候入手了!
2021-08-17 13:53:10 +08:00
回复了 zhaorunze 创建的主题 阅读 大家来推荐一本对你思想观念影响最大的一本书
@KousukeSakurako 小逻辑看不懂,每个字都看得懂,连在一起就看不懂了
1 ... 20  21  22  23  24  25  26  27  28  29 ... 77  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5935 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 02:37 · PVG 10:37 · LAX 18:37 · JFK 21:37
Developed with CodeLauncher
♥ Do have faith in what you're doing.