在Python中格式化JSON输出

时间:2019-02-04 12:28:14

标签: python json

如何格式化我的JSON输出,使其看起来易于阅读,并且我有一个如下所示的JSON文件:

{
"user1":{
    "Country":[
        "China", "USA", "Nepal"
    ],
     "Name": [
        "Lisbon"
    ]
},

"user2":{
    "Country":[
        "Sweden", "China", "USA"
    ],
     "Name": [
        "Jade"
    ]
},

"user3":{
    "Country":[
        "India", "China", "USA"
    ],
     "Name": [
        "John"
    ]
}

这是我的代码:

user = raw_input("Enter user's name: ")
with open('Users.json') as f:
    data = json.load(f)

for k, v in data.items():
    if any(x in data[user]['Country'] for x in v['Country']):
        print(v['Name'])

到目前为止,我的输出看起来像这样:

[u'Lisbon']
[u'Jade']
[u'John']

我想要一个看起来像这样的输出,如何解决呢?:

Lisbon
Jade
John

3 个答案:

答案 0 :(得分:1)

您只需将print(v['Name'])的{​​{1}}更改为

答案 1 :(得分:0)

u中的u'Jade'表示字符串为encoded in Unicode。如果您希望打印裸露的字符串,可以使用print(unicode(v['Name'][0])),但这对基础数据类型没有影响。

如果您将继续使用Python处理JSON对象,则可能要签出pretty-printing JSON。

答案 2 :(得分:0)

谢谢大家的各种回答!但是我设法自己找到了答案,我将打印语句调整为这个!

userName = raw_input("Enter user's name: ")
with open('extracted_data.json') as f:
    data = json.load(f)

for k, v in data.items():
    if any(x in data[userName]['Acceptable_country'] for x in v['Acceptable_country']):
        print(", ".join(v['Name']))