JSON格式输出在Python

问题描述 投票:2回答:3

如何格式化我的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
python json
3个回答
1
投票

你只需要改变print(v['Name'])print(v['Name'][0])


0
投票

uu'Jade'表示该字符串是encoded in Unicode。如果你要打印的裸字符串可以使用print(unicode(v['Name'][0])),但它使基础数据类型没有什么区别。

你可能想看看pretty-printing JSON,如果你将继续在Python JSON对象工作。


0
投票

谢谢你的各种各样的回答人!但是我设法找到弄清楚我自己,我调整我的print语句变成这样!

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']))
© www.soinside.com 2019 - 2024. All rights reserved.