我有嵌套字典:
{'key0': {'attrs': {'entity': 'p', 'hash': '34nj3h43b4n3', 'id': '4130'},
u'key1': {'attrs': {'entity': 'r',
'hash': '34njasd3h43b4n3',
'id': '4130-1'},
u'key2': {'attrs': {'entity': 'c',
'hash': '34njasd3h43bdsfsd4n3',
'id': '4130-1-1'}}},
u'key3': {'attrs': {'entity': 'r',
'hash': '34njasasasd3h43b4n3',
'id': '4130-2'},
u'key4': {'attrs': {'entity': 'c',
'hash': '34njawersd3h43bdsfsd4n3',
'id': '4130-2-1'}},
u'key5': {'attrs': {'entity': 'c',
'hash': '34njawersd3h43bdsfsd4n3',
'id': '4130-2-2'}}}},
'someohterthing': 'someothervalue',
'something': 'somevalue'}
Run Code Online (Sandbox Code Playgroud)
给予id - 一个ids喜欢4130的4130-2-2.
导航到正确字典的最简单方法是什么?
就像给定id的4130-2-1那样它应该到达字典key=key5
非xml方法请.
编辑(1):筑巢之间1到4的水平,但我知道我的嵌套前解析.
编辑(2):修复了代码.
**编辑(3):**再次固定代码的字符串值 …
我知道我在找什么.我想让python告诉我它在哪个列表中.
这是一些伪代码:
item = "a"
nested_list = [["a", "b"], ["c", "d"]]
list.index(item) #obviously this doesn't work
Run Code Online (Sandbox Code Playgroud)
在这里我希望python返回0(因为"a"是较大列表中第一个子列表中的元素).我不关心它是哪个子元素.我不在乎是否有重复,例如,["a","b","a"]应返回与上述示例相同的内容.
那么,环境变量在Windows中嵌套的深度是否有限制?我做了很多开发工作,我正在尝试建立我的开发环境变量,而且很多都是相互嵌套的,即.
GLEW=%THIRD_PARTY_ROOT%\GLEW
GLEW_1_5_5=%GLEW%\glew-1.5.5
GLEW_BIN_PATH=%GLEW_ROOT%\bin
GLEW_INCLUDE_PATH=%GLEW_ROOT%\include
GLEW_LIB_PATH=%GLEW_ROOT%\lib
GLEW_ROOT=%GLEW_1_5_5%
OSG=%THIRD_PARTY_ROOT%\OpenSceneGraph
OSG_2_8_3=%OSG%\OpenSceneGraph-2.8.3
OSG_BIN_PATH=%OSG_ROOT%\bin
OSG_INCLUDE_PATH=%OSG_ROOT%\include
OSG_LIB_PATH=%OSG_ROOT%\lib
OSG_ROOT=%OSG_2_8_3%
THIRD_PARTY_ROOT=C:\dev\third-party
Run Code Online (Sandbox Code Playgroud)
但我有一段时间让他们真正适当地扩展.有一段时间,当我查看set的输出时,我只是得到了他们正在按顺序展开的东西,所以任何依赖于foo_ROOT的东西都没有被正确扩展.我尝试启用延迟扩展并没有帮助,但重启似乎......所以可能延迟扩展需要重启..
无论哪种方式,我的PATH变量中都有GLEW_BIN_PATH和OSG_BIN_PATH,它们拒绝扩展.这真是令人沮丧,因为dll正在那里居住,当然我可以得到其他的东西来扩展...任何想法?
编辑:我在PATH变量中将它们作为:
[everything else....];%GLEW_BIN_PATH%;%OSG_BIN_PATH%
所以我没有看到明显的原因阻止他们扩大..
我有以下json,如下所示.我正在尝试读取值TOP1,TOP2.我有点不确定如何做到这一点.
我正在使用以下..但这只是让我得到一个具有TOP1和TOP2嵌套对象的对象.如何获得TOP1和TOP2的值?
$.getJSON('http://localhost/data/menufixed.json',
function(data) {
$.each(data, function(entryIndex, entry) {
var html = '<li class="top-level">';
});
});
Run Code Online (Sandbox Code Playgroud)
以下数据
{
"actions" : [
{
"action": "TOP1",
"subaction": [
{
"name": "A"
},
{
"name": "B"
},
{
"name": "C"
}
]
},
{
"action": "TOP2",
"subaction": [
{
"name": "X"
},
{
"name": "Y"
}
]
Run Code Online (Sandbox Code Playgroud) 以下是我的条件:
'OR' =>
array(
'AND' => array(
array('EventCompetitor.is_black' => 1),
array('EventCompetitor.is_adult' => 1)
),
'AND' => array(
array('EventCompetitor.is_black' => 0),
array('EventCompetitor.is_adult' => 0)
),
),
Run Code Online (Sandbox Code Playgroud)
当我调试我的查询时,它是这样的,这是错误的:
AND ((`EventCompetitor`.`is_black` = 0) AND (`EventCompetitor`.`is_adult` = 0)) AND
Run Code Online (Sandbox Code Playgroud)
现在,这不是我想要的,我希望它是这样的:
((`EventCompetitor`.`is_black` = 1) AND (`EventCompetitor`.`is_adult` = 1)) OR ((`EventCompetitor`.`is_black` = 0) AND (`EventCompetitor`.`is_adult` = 0))
Run Code Online (Sandbox Code Playgroud)
任何想法,我怎样才能实现它?
谢谢 !
基本上,我想迭代一个文件并将每行的内容放入一个深度嵌套的dict中,其结构由每行开头的空白量定义.
基本上我们的目标是采取这样的方式:
a
b
c
d
e
Run Code Online (Sandbox Code Playgroud)
把它变成这样的东西:
{"a":{"b":"c","d":"e"}}
Run Code Online (Sandbox Code Playgroud)
或这个:
apple
colours
red
yellow
green
type
granny smith
price
0.10
Run Code Online (Sandbox Code Playgroud)
进入这个:
{"apple":{"colours":["red","yellow","green"],"type":"granny smith","price":0.10}
Run Code Online (Sandbox Code Playgroud)
这样我就可以将它发送到Python的JSON模块并制作一些JSON.
目前我正试图按照这样的步骤制作一个字典和一个列表:
{"a":""} ["a"]{"a":"b"} ["a"]{"a":{"b":"c"}} ["a","b"]{"a":{"b":{"c":"d"}}}} ["a","b","c"]{"a":{"b":{"c":"d"},"e":""}} ["a","e"]{"a":{"b":{"c":"d"},"e":"f"}} ["a","e"]{"a":{"b":{"c":"d"},"e":{"f":"g"}}} ["a","e","f"]等等
该列表的行为类似于"breadcrumbs",显示了我最后输入dict的位置.
要做到这一点,我需要一种方法来遍历列表并生成类似于dict["a"]["e"]["f"]获取最后一个字典的内容.我已经看过有人制作的AutoVivification类看起来非常有用但是我真的不确定:
我提出了以下功能,但它不起作用:
def get_nested(dict,array,i):
if i != None:
i += 1
if array[i] in dict:
return get_nested(dict[array[i]],array)
else:
return dict
else:
i = 0
return get_nested(dict[array[i]],array)
Run Code Online (Sandbox Code Playgroud)
非常感谢帮助!
(其余的非常不完整的代码在这里:)
#Import relevant libraries
import codecs
import …Run Code Online (Sandbox Code Playgroud) 我有一些字典词典,像这样:
a['b']['c']['d']['answer'] = answer1
a['b']['c']['e']['answer'] = answer2
a['b']['c']['f']['answer'] = answer3
....
a['b']['c']['d']['conf'] = conf1
a['b']['c']['e']['conf'] = conf2
a['b']['c']['f']['conf'] = conf3
Run Code Online (Sandbox Code Playgroud)
有没有一种快速的方法来获得第三级(d,e,f)所有元素的所有答案的值列表?
具体来说,我想知道是否有任何实现通配符的机制(例如, a['b']['c']['*']['answer'].values()
更新 我发现到目前为止最快的方法是:
[x['answer'] for x in a['b']['c'].values()]
Run Code Online (Sandbox Code Playgroud) 我知道在使用BEM时,类名不应该直接反映HTML结构,但是如何命名包装元素呢?请忽略我的特定语法(靠近SUIT); 它仍然遵循BEM,只是采用不同的方式来区分元素.
例如:
<div class="?">
<footer class="PageFooter">
<h4 class="PageFooter-brand>…</h4>
<ul class="PageFooter-contactDetails">…</ul>
</footer>
<div>
Run Code Online (Sandbox Code Playgroud)
我现在将这个包装器在这个实例中分类为PageFooterWrapper,但是这感觉很笨,因为包装器不是独立的 - 它纯粹存在于PageFooter.显然,为所有内容添加前缀PageFooter-是荒谬的,所以只留下将包装作为以下内容的一部分PageFooter:PageFooter-wrapper.这让我感到不安,因为有一个隐含的建议应用于此.
那么包装器的类应该是什么?
我有Geography.framework(一个Swift框架项目)包含的以下类:
public class Contact : NSObject
{
public static let Table: String = "contacts"
public class Fields : NSObject
{
public static let Id: String = "_id"
public static let Name: String = "name"
static let rawId: String = "rawId"
}
}
public class Country : NSObject
{
public class Fields : NSObject
{
public static let Id: String = "_id"
public static let Prefix: String = "prefix"
static let rawId: String = "rawId"
}
}
Run Code Online (Sandbox Code Playgroud)
在我使用此框架的快速应用程序中,一切运行顺利:
import geography
func …Run Code Online (Sandbox Code Playgroud) 我正在使用Bootstrap来制作可折叠的嵌套div /按钮.我想在展开时折叠div的所有兄弟,并在折叠时折叠div的所有子节点(这样扩展的div只是从一个根div到内部div的一条路径).
我选择使用jQuery而不是使用Bootstrap的Accordion - 只是带有相关div的按钮.
所以我尝试选择所有可以扩展的div并使用show.bs.collapse事件,以便我知道哪个div被扩展了.
$(function () {
$(".collapse").on('show.bs.collapse', function () {
console.log ($(this).context.id);
})
});
Run Code Online (Sandbox Code Playgroud)
如果我的树是这样的:
1 - 扩大
2 - 扩大
4 - 崩溃了
5 - 崩溃了
6 - 崩溃了
我扩展3,我没有得到:
3
Run Code Online (Sandbox Code Playgroud)
但:
3
2
1
Run Code Online (Sandbox Code Playgroud)
为什么将show.bs.collapse应用于div 1和2?
nested ×10
python ×4
dictionary ×3
jquery ×2
parsing ×2
bem ×1
cakephp ×1
css ×1
environment ×1
find ×1
frameworks ×1
indexing ×1
javascript ×1
json ×1
list ×1
objective-c ×1
struct ×1
swift ×1
variables ×1
windows ×1
wrapper ×1