0

人々の名前と年齢を含むjsonファイルを解析した後、

{"People":
    [
        {  "name":"damon julian",
           "age":40
         }
    ]
}

data=json.load(file)
d1=data["People"][0]

こんな辞書がありました

d1={'name':'damon julian','age':40}

辞書の値の1つに部分文字列が存在するかどうかを調べたいので、'damon'試しました

[(k, v) for (k, v) in d1.iteritems() if 'damon' in v]

ただし、これによりエラーが発生します

TypeError: argument of type 'int' is not iterable

値を文字列としてキャストすることでこれを解決しました

[(k, v) for (k, v) in d1.iteritems() if 'damon' in str(v)]

これを行うためのより良い方法があるかどうかを知りたいのですがjson data to dict、値を変換してから解析するという私のアプローチは正しいですか?それとも、より良い方法がありますか?正規表現などを使用している可能性がありますか?

お知らせ下さい。

4

1 に答える 1

0
any(('damon' in v) for v in yourDict.values() if isinstance(v,str))

また

any((isinstance(v,str) and 'damon' in v) for v in yourDict.values())

(これらの構造の両方が常に同等であるとは限らないことに注意してください)

于 2012-04-30T04:33:13.427 に答える