在python中获取冒号之后和逗号之前的值[重复]

Posted

技术标签:

【中文标题】在python中获取冒号之后和逗号之前的值[重复]【英文标题】:Get a value after colons and before comma in python [duplicate] 【发布时间】:2022-01-06 18:42:15 【问题描述】:

我需要创建一个从网站和国家名称获取文本的 API。 然后它告诉我这个国家的人口是上升还是下降或没有变化。 但我并没有被困在如何从这么长的字符串中获取人口数量。

字符串是这样的:

"googleMaps":"https://goo.gl/maps/6UY1AH8XeafVwdC97","openStreetMaps":"https://www.openstreetmap.org/relation/1473946","population":9216900,"gini":"2016":39.0,"fifa":"ISR","car":"signs":["IL"],"side":"right"

我只想从那里取出数字“9216900”并将其保存为 int。

我尝试使用 json.loads 但我收到此错误:

Traceback(最近一次调用最后一次): 文件“G:/HackerU/Python/Challenges/Population/main.py”,第 12 行,在 load_json = json.loads(json_data)[:-1][2:] 加载中的文件“C:\Users\netanell\AppData\Local\Programs\Python\Python38-32\lib\json_init_.py”,第 357 行 返回 _default_decoder.decode(s) 解码中的文件“C:\Users\netanell\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py”,第 337 行 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 文件“C:\Users\netanell\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py”,第 355 行,在 raw_decode 从 None 提高 JSONDecodeError("Expecting value", s, err.value) json.decoder.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)

这是当前代码:

import bs4
import urllib.request
import json

country = input("Country: ")
# Getting updated list and saving it as "json_data"
link = 'https://restcountries.com/v3.1/name/' + country
webpage = str(urllib.request.urlopen(link).read())
soup = bs4.BeautifulSoup(webpage, "html.parser")
json_data = soup.get_text()
loaded_json = json.loads(json_data)[:-1][2:]
population_number = loaded_json['population']
print(population_number)

【问题讨论】:

是保存为字符串还是dict 您的数据采用极为常见的 JSON 格式,您必须了解这些格式才能进行 Web 编程。使用库解析数据后(Python 包括标准库中的支持),您处理生成的数据与处理任何其他嵌套列表和/或字典的方式完全相同。 (如果您不知道如何在 Python 中使用 dict,那么您需要遵循教程并学习基础知识;在跑步之前先走。) 【参考方案1】:

此字符串存储为 JSON(javascript 对象表示法),因此您可以非常简单地将其解析为 python。见下文

import json

string = "..." # Your string

loaded_json = json.loads(string)

population_number = loaded_json['population']
print(population_number)

这会将文本转换为 python 字典,允许您访问它。

【讨论】:

嗨,你能看到编辑吗?

以上是关于在python中获取冒号之后和逗号之前的值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取用逗号分隔的值的计数[重复]

json 的值如果有逗号怎么办

使用 Pandas 使用冒号、逗号和排序分隔值的数据框

python dict用法

Python解析csv文件 - 用冒号替换逗号

for循环循环取值的时候,当出现了与以前循环出的值有重复的值时就只取出重复之前的值, 比如整个循环