【问题标题】:How to parse JSON data keys and values in python?如何在 python 中解析 JSON 数据键和值?
【发布时间】:2015-06-25 19:16:16
【问题描述】:

我有一个名为 data 的变量。它包含以下 JSON 值。

data=['{"time":["1000","MS"],"What is your name?":["John"]}']

我想从中分离键和值,并希望输出如下所示。

Keys
-----
time 
What is your name?

Value:
------
1000 
MS
John

在python中怎么做?

【问题讨论】:

    标签: python json python-2.7


    【解决方案1】:

    你可以使用json.loads来解析一个json字符串

    >>> data=['{"time":["1000","MS"],"What is your name?":["John"]}']
    >>> a_dict = json.loads(data[0])
    
    >>> a_dict.keys()
    [u'What is your name?', u'time']
    >>> a_dict.values()
    [[u'John'], [u'1000', u'MS']]
    

    现在您可以使用简单的for 循环来打印您需要的输出。

    或者喜欢

    >>> print '\n'.join(a_dict.keys())
    What is your name?
    time
    >>> print '\n'.join( '\n'.join(x )for x in a_dict.values() )
    John
    1000
    MS
    

    【讨论】:

    • 如何分隔多个键和值?我需要以我在问题中显示的方式输出。
    • @user2151087 他们不是已经分开了吗,第一个是键列表,下一个是值列表。您无法确定它们出现的顺序,因为字典是无序列表
    • @user2151087 看看打印语句,我想你是专门找的
    【解决方案2】:

    你也可以使用ast模块:

    >>> import ast
    >>> ast.literal_eval(data[0])
    {'What is your name?': ['John'], 'time': ['1000', 'MS']}
    >>> d=ast.literal_eval(data[0])
    >>> print '\n'.join(d.keys())
    What is your name?
    time
    >>> print '\n'.join([j for i in d.values() for j in i])
    John
    1000
    MS
    

    【讨论】:

    • 如何分隔多个键和值?我需要以我在问题中显示的方式输出。
    • @user2151087 你可以加入他们,用换行符!关于values,因为它们是嵌套列表,您可以使用嵌套列表理解来解压缩它们!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 2021-07-13
    • 1970-01-01
    • 2017-05-23
    • 2021-11-21
    相关资源
    最近更新 更多