{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"Microsoft.AspNetCore": "Warning",
"System.Net.Http.HttpClient.Default.ClientHandler": "Warning",
"System.Net.Http.HttpClient.Default.LogicalHandler": "Warning"
}
},
"AllowedHosts": "*",
"AutomaticTransferOptions": {
"DateOffsetForDirectoriesInDays": -1,
"DateOffsetForPortfoliosInDays": -3,
"Clause": {
"Item1": "1"
}
},
"Authentication": {
"ApiKeys": [
{
"Key": "AB8E5976-2A7C-4EEE-92C1-7B0B4DC840F6",
"OwnerName": "Cron job",
"Claims": [
{
"Type": "http://schemas.microsoft.com/ws/2008/06/identity/claims/role",
"Value": "StressTestManager"
}
]
},
{
"Key": "B11D4F27-483A-4234-8EC7-CA121712D5BE",
"OwnerName": "Test admin",
"Claims": [
{
"Type": "http://schemas.microsoft.com/ws/2008/06/identity/claims/role",
"Value": "StressTestAdmin"
},
{
"Type": "http://schemas.microsoft.com/ws/2008/06/identity/claims/role",
"Value": "TestManager"
}
]
},
{
"Key": "EBF98F2E-555E-4E66-9D77-5667E0AA1B54",
"OwnerName": "Test manager",
"Claims": [
{
"Type": "http://schemas.microsoft.com/ws/2008/06/identity/claims/role",
"Value": "TestManager"
}
]
}
],
"LDAP": {
"Domain": "domain.local",
"MachineAccountName": "Soft13",
"MachineAccountPassword": "vixuUEY7884*",
"EnableLdapClaimResolution": true
}
},
"Authorization": {
"Permissions": {
"Roles": [
{
"Role": "TestAdmin",
"Permissions": [
"transfers.create",
"bindings.create"
]
},
{
"Role": "TestManager",
"Permissions": [
"transfers.create"
]
}
]
}
}
}
我上面有JSON,需要用如下输出解析它
Logging__LogLevel__Default
Authentication__ApiKeys__0__Claims__0__Type
一切正常,但我总是用这个输出得到一些字符串
Authentication__ApiKeys__0__Key
Authentication__ApiKeys__0__OwnerName
Authentication__ApiKeys__0__Claims__0__Type
Authentication__ApiKeys__0__Claims__0__Value
Authentication__ApiKeys__0__Claims__0
Authentication__ApiKeys__2
Authorization__Permissions__Roles__0__Role
Authorization__Permissions__Roles__0__Permissions__1
Authorization__Permissions__Roles__1__Role
Authorization__Permissions__Roles__1__Permissions__0
Authorization__Permissions__Roles__1
为什么我的代码不添加完整的字符串
Authentication__ApiKeys__0__Claims__0
Authentication__ApiKeys__2
Authorization__Permissions__Roles__1
以及为什么它不打印来自
Authorization__Permissions__Roles__0__Permissions__*
来自
Authorization__Permissions__Roles__1__Permissions__*
我在python3中有以下代码:
def checkdepth(sub_key, variable):
delmt = '__'
for item in sub_key:
try:
if isinstance(sub_key[item], dict):
sub_variable = variable + delmt + item
checkdepth(sub_key[item], sub_variable)
except TypeError:
continue
if isinstance(sub_key[item], list):
sub_variable = variable + delmt + item
for it in sub_key[item]:
sub_variable = variable + delmt + item + delmt + str(sub_key[item].index(it))
checkdepth(it, sub_variable)
print(sub_variable)
if isinstance(sub_key[item], int) or isinstance(sub_key[item], str):
sub_variable = variable + delmt + item
print (sub_variable)
for key in data:
if type(data[key]) is str:
print(key + '=' +str(data[key]))
else:
variable = key
checkdepth(data[key], variable)
我知道我处理列表数据类型的块中的问题,但我不知道问题到底在哪里
使用json_flatte可以将其转换为pandas,但不清楚这是否是您想要的。此外,当您进行转换时,可以使用df.iloc[0]查看为什么要提供每个列(即您可以看到该键的值)
注意:您需要传递一个列表,所以我刚刚将您的json包装在[]中
好的,我看了你的代码,很难理解。变量和函数名的用途不容易理解。这很好,因为每个人都必须学习python中的最佳实践和所有小技巧。希望我能帮你
你有一个递归函数。这绝对是处理这种情况的最好方法。然而,您的代码部分是递归的,部分不是。如果你去递归解决一个问题,你必须去100%递归
此外,在递归函数中打印的唯一时间是用于调试。递归函数应该有一个对象,该对象被传递给函数,并被追加或更改,然后在递归结束时被传递回
当您遇到这样的问题时,请思考您实际需要或关心哪些数据。在这个问题中,我们不关心存储在对象中的值,我们只关心键。因此,我们应该编写代码,除了确定其类型之外,甚至不需要查看某些内容的值
下面是我编写的一些代码,它们应该可以满足您的需要。但请注意,因为我只做了一个递归函数,所以我的代码库很小。我的函数还使用了一个传递并添加到的列表,然后在最后返回它,这样我们就可以使用它来满足任何需要。如果你有问题,就评论一下这个问题,我会尽我所能回答你
使用递归生成器:
输出:
相关问题 更多 >
编程相关推荐