{
"RuntimeSources": {
"flask-webapp": {
"eb-flask1.3": {
"s3url": ""
}
}
},
"DeploymentId": 4,
"Serial": 4
}
Es gibt so eine JSON-Datei. Jetzt muss ich die Zeichenfolge selbst extrahieren. Mit Object.keys() erhalte ich die drei Schlüssel RuntimeSource, DeploymentId und Serial. flask-webapp
这个key的name,即flask-webapp
Ich finde, dass meine Beschreibung etwas kompliziert ist. Zusammenfassend lässt sich sagen, wie man den Schlüssel in der nächsten Schlüsselwertebene in der ersten Schlüsselwertdatei dieser JSON-Datei extrahiert (es scheint komplizierter zu sein ...). Ich hoffe, Sie können es verstehen) )
Es kann mit Python oder Javascript implementiert werden
这是需要处理的数据,题主的问题应该可以看成下面问题的一个真子集
(问题是只要取得
"flask-webapp"
)这个过程 暂且称之为
铺平 flat
, 我这里也实现了这个函数 用于取得这个解。利用 Object.keys 解决问题
Object.keys
能获得可枚举的第一层对象属性键名利用这样的特性编写递归函数:
ScreenShot
特别地 你需要
flask-webapp
这个键名:利用 JSON.stringify 解决问题
JSON.stringify
可以把对象转化成JSON字符串
比如
JSON.stringify(o)
可以得到结果"{"RuntimeSources":{"flask-webapp":{"eb-flask1.3":{"s3url":""}}},"DeploymentId":4,"Serial":4}"
继续观察可以发现:
把 JSON 的元素构成一个数组,再把
冒号
前的挑出来就可以了。工具函数
flat
的实现上面的意思是:
第一个 reduce 给
{
}
:
,
的前后补了空格对应代码
结果是这样的:
原来的 str 从
"{"RuntimeSources":{"flask-webapp":{"eb-flask1.3":{"s3url":""}}},"DeploymentId":4,"Serial":4}"
经过处理后 变成
" { "RuntimeSources" : { "flask-webapp" : { "eb-flask1.3" : { "s3url" : "" } } } , "DeploymentId" : 4 , "Serial" : 4 } "
得到一个中间结果
A
Next
这里要处理
A
对应代码:
把
A
转成中间数组B
: (从字符串变成数组)最后一个 reduce 得到结果
观察
B
可以得到一个结论据此写出 最后的reduce:把
冒号
前的元素收集起来 得到结果ScreenShot
执行到最后应该会抛出错误 Cannot convert undefined or null to object,这个没事儿
如果是要用python实现的话,dict是一种散列表结构,就是说数据输入后按特征已经被散列了,有自己的顺序
如果你可以指定key的名字倒还可以获取,如果不能指定key的名字,那就做不到
python 默认字典是无序的,但是可以用 OrderedDict 有序字典来实现。