Mam poniżej ciąg json:
a={"44":[
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"P3P34",
"sum":"807",
}
}
},
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"BFB",
"sum":"8A",
}
}
}
],
"49":[
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"P3P34",
"sum":"807",
}
}
},
{
"17":{
"unitData":[
],
"unitHeader":{
"t9u":"BFB",
"sum":"8A",
}
}
}
],
"7":[
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"P3P34",
"sum":"807",
}
}
},
{
"6":{
"unitData":[
],
"unitHeader":{
"t9u":"BFB",
"sum":"0A",
}
}
}
],
}
Klucz z powyższego ciągu json otrzymanego przez a.keys () to:
dict_keys(['44', '49', '7'])
Jak odfiltrować a, aby pozostał kluczem 44 i 49 tylko wtedy, gdy podana tablica to ['44', '49'], poniżej jest mój oczekiwany wynik:
{"44":[
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"P3P34",
"sum":"807",
}
}
},
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"BFB",
"sum":"8A",
}
}
}
],
"49":[
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"P3P34",
"sum":"807",
}
}
},
{
"17":{
"unitData":[
],
"unitHeader":{
"t9u":"BFB",
"sum":"8A",
}
}
}
],
}
0
Shi Jie Tio
17 marzec 2020, 08:20
2 odpowiedzi
Najlepsza odpowiedź
Spróbuj tego poniżej:
a={"44":[
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"P3P34",
"sum":"807",
}
}
},
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"BFB",
"sum":"8A",
}
}
}
],
"49":[
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"P3P34",
"sum":"807",
}
}
},
{
"17":{
"unitData":[
],
"unitHeader":{
"t9u":"BFB",
"sum":"8A",
}
}
}
],
"7":[
{
"16":{
"unitData":[
],
"unitHeader":{
"t9u":"P3P34",
"sum":"807",
}
}
},
{
"6":{
"unitData":[
],
"unitHeader":{
"t9u":"BFB",
"sum":"0A",
}
}
}
],
}
given_array = ['44', '49']
for i in list(a.keys()):
if i not in given_array:
a.pop(i)
print(a)
1
Abhishek Kulkarni
17 marzec 2020, 05:34
Jeśli dobrze Cię rozumiem, chcesz użyć takiego rozumienia dict
:
import json
filtered_json = {key: value for key, value in a.items() if key in ('44', '49')}
json_str = json.dumps(filtered_json , indent=4)
print(json_str)
Wynik:
{
"44": [
{
"16": {
"unitData": [],
"unitHeader": {
"t9u": "P3P34",
"sum": "807"
}
}
},
{
"16": {
"unitData": [],
"unitHeader": {
"t9u": "BFB",
"sum": "8A"
}
}
}
],
"49": [
{
"16": {
"unitData": [],
"unitHeader": {
"t9u": "P3P34",
"sum": "807"
}
}
},
{
"17": {
"unitData": [],
"unitHeader": {
"t9u": "BFB",
"sum": "8A"
}
}
}
]
}
1
GordonAitchJay
17 marzec 2020, 05:35
Podobne pytania
Nowe pytania
json
JSON (JavaScript Object Notation) to serializowalny format wymiany danych przeznaczony do odczytu maszynowego i ludzkiego. Nie używaj tego tagu dla natywnych obiektów JavaScript ani literałów obiektów JavaScript. Zanim zadasz pytanie, sprawdź poprawność JSON za pomocą walidatora JSON, takiego jak JSONLint (https://jsonlint.com).