Python:如何很好地显示json结果?
我目前正在构建一个电报机器人,并在GooglePlacesAPI上获得JSON响应,以便将附近的位置返回给用户。 我得到的json响应如下:Python:如何很好地显示json结果?,python,json,python-telegram-bot,Python,Json,Python Telegram Bot,我目前正在构建一个电报机器人,并在GooglePlacesAPI上获得JSON响应,以便将附近的位置返回给用户。 我得到的json响应如下: results" : [ { "name" : "Golden Village Tiong Bahru", "opening_hours" : { "open_now" : true }, "rating" : 4.2, "typ
results" : [
{
"name" : "Golden Village Tiong Bahru",
"opening_hours" : {
"open_now" : true
},
"rating" : 4.2,
"types" : [ "movie_theater", "point_of_interest", "establishment" ],
"user_ratings_total" : 773
},
{
"name" : "Cathay Cineplex Cineleisure Orchard",
"opening_hours" : {
"open_now" : true
},
"rating" : 4.2,
"types" : [ "movie_theater", "point_of_interest", "establishment" ],
"user_ratings_total" : 574
}
]
获取字典中特定项的当前代码
json.dumps([[s['name'], s['rating']] for s in object_json['results']], indent=3)
目前的结果:
[
[
"Golden Village Tiong Bahru",
4.2
],
[
"Cathay Cineplex Cineleisure Orchard",
4.2
]
]
我想获得名称、评级并并排显示:
Golden Village Tiong Bahru : 4.2,
Cathay Cineplex Cineleisure Orchard : 4.2
请帮助。可能需要:
json.dumps([s['name'] + ": " + str(s['rating']) for s in object_json['results']], indent=3)
可能是:
json.dumps([s['name'] + ": " + str(s['rating']) for s in object_json['results']], indent=3)
您想要json格式作为结果吗? 然后你可以做:
json.dumps({
s['name']:s['rating']
对于对象_json['results']
},缩进=3)
如果只需要字符串列表:
lines=[f”{s['name']}:{s['rating']}用于对象json['results']]中的s
或者您只想打印:
对象_json['results']中的s的
打印(f“{s['name']}:{s['rating']}”)
您需要3.6或更高版本的python解释器才能使用f-string(f“…”
)。
我想你不需要,换一个
f“{s['name']}:{s['rating']}”
->{name}:{rating}.format(**s)
是否需要json格式作为结果?
然后你可以做:
json.dumps({
s['name']:s['rating']
对于对象_json['results']
},缩进=3)
如果只需要字符串列表:
lines=[f”{s['name']}:{s['rating']}用于对象json['results']]中的s
或者您只想打印:
对象_json['results']中的s的
打印(f“{s['name']}:{s['rating']}”)
您需要3.6或更高版本的python解释器才能使用f-string(f“…”
)。
我想你不需要,换一个
f“{s['name']}:{s['rating']}”
->{name}:{rating}”。格式(**s)
谢谢!但是对于非json有可能吗?因为我会有“引号和一些奇怪的字符”\u2013{“亚历山大公园酒店”:4.3,“宜必思budget新加坡费伯山酒店(前身为香水酒店\u2013皇家)”:3.6}
非常感谢您的帮助!!我尝试了for循环,但它只给出了第一个项目的名字。我一直在试图找出for循环。我刚刚意识到这可能是因为我使用return而不是printHi只是想知道,如果在键值对中,值在列表中,是否可以删除下划线??现在我的结果是本地餐厅和酒吧:餐厅,食物,兴趣点,设施。谢谢你的帮助help@blueKingdom11您可以为此调用str.replace
方法。例如,s['rating'].replace(''u','')
。谢谢,它能工作!但是对于非json有可能吗?因为我会有“引号和一些奇怪的字符”\u2013{“亚历山大公园酒店”:4.3,“宜必思budget新加坡费伯山酒店(前身为香水酒店\u2013皇家)”:3.6}
非常感谢您的帮助!!我尝试了for循环,但它只给出了第一个项目的名字。我一直在试图找出for循环。我刚刚意识到这可能是因为我使用return而不是printHi只是想知道,如果在键值对中,值在列表中,是否可以删除下划线??现在我的结果是本地餐厅和酒吧:餐厅,食物,兴趣点,设施。谢谢你的帮助help@blueKingdom11您可以为此调用str.replace
方法。例如,s['rating'].replace(“,”)
对象json['results']中的s:print('%(名称)s:%(评级)s'%s)
对象json['results']中的s:print('%(名称)s:%(评级)s'%s)。