ast.literal_eval 抛出 ValueError
ast.literal_eval throwing ValueError
ast.literal_eval
正在为以下 JSON 抛出 ValueError: malformed string
。
我无法发现错误是什么。我使用在线 JSON 验证器,都提到这是一个有效的 JSON.
谁能帮我找出这个字符串的错误?
{
"business_id": "Iu-oeVzv8ZgP18NIB0UMqg",
"full_address": "3320 S Hill St,South East LA,Los Angeles, CA 90007",
"schools": [
"University of Southern California"
],
"open": true,
"categories": [
"Medical Centers",
"Health and Medical"
],
"photo_url": "http://s3-media1.ak.yelpcdn.com/bphoto/SdUWxREuWuPvvot6faxfXg/ms.jpg",
"city": "Los Angeles",
"review_count": 2,
"name": "Southern California Medical Group",
"neighborhoods": [
"South East LA"
],
"url": "http://www.yelp.com/biz/southern-california-medical-group-los-angeles",
"longitude": -118.274281,
"state": "CA",
"stars": 3.5,
"latitude": 34.01971,
"type": "business"
}
您在这里使用了错误的工具 - ast.literal_eval
用于将 python 文字 从字符串解析为 python对象。它不适用于将序列化 JSON 中的数据加载到 python 中(尽管在某些情况下它也可能适用于此,因为序列化 json 格式恰好与 python 语法)。
也许您正在寻找 json.loads
?
true
是 Python 中的无效文字:
In [2]: ast.literal_eval('true')
ValueError: malformed node or string: <_ast.Name object at 0x7f32a096d550>
当您需要反序列化 JSON 文档时使用 json
module (specifically json.loads
)。
ast.literal_eval
正在为以下 JSON 抛出 ValueError: malformed string
。
我无法发现错误是什么。我使用在线 JSON 验证器,都提到这是一个有效的 JSON.
谁能帮我找出这个字符串的错误?
{
"business_id": "Iu-oeVzv8ZgP18NIB0UMqg",
"full_address": "3320 S Hill St,South East LA,Los Angeles, CA 90007",
"schools": [
"University of Southern California"
],
"open": true,
"categories": [
"Medical Centers",
"Health and Medical"
],
"photo_url": "http://s3-media1.ak.yelpcdn.com/bphoto/SdUWxREuWuPvvot6faxfXg/ms.jpg",
"city": "Los Angeles",
"review_count": 2,
"name": "Southern California Medical Group",
"neighborhoods": [
"South East LA"
],
"url": "http://www.yelp.com/biz/southern-california-medical-group-los-angeles",
"longitude": -118.274281,
"state": "CA",
"stars": 3.5,
"latitude": 34.01971,
"type": "business"
}
您在这里使用了错误的工具 - ast.literal_eval
用于将 python 文字 从字符串解析为 python对象。它不适用于将序列化 JSON 中的数据加载到 python 中(尽管在某些情况下它也可能适用于此,因为序列化 json 格式恰好与 python 语法)。
也许您正在寻找 json.loads
?
true
是 Python 中的无效文字:
In [2]: ast.literal_eval('true')
ValueError: malformed node or string: <_ast.Name object at 0x7f32a096d550>
当您需要反序列化 JSON 文档时使用 json
module (specifically json.loads
)。