用键作为数字处理特殊的JSON

2024-05-14 19:40:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过json.loads将数据从file提取到字典中。示例:

{725: 'pitcher, ewer',
726: "plane, carpenter's plane, woodworking plane"}
  1. json.loads无法将键作为数字处理
  2. 有些值是“”,有些值是“”

有什么建议吗

代码

import requests

url = url
r = requests.get(url)
response = r.text.replace('\n','')
response = re.sub(r':(\d+):*', r'"\1"', response)

Tags: 数据jsonurl示例字典responserequestsfile
1条回答
网友
1楼 · 发布于 2024-05-14 19:40:22

您提供的文件似乎是一个有效的Python dict,因此我建议使用literal_eval作为替代方法

from ast import literal_eval

data = literal_eval(r.text)
print(data[726])

输出:plane, carpenter's plane, woodworking plane


如果您仍然喜欢json,那么可以尝试使用regex用字符串替换数字

import re

s = re.sub(r"(?m)^(\W*)(\d+)\b", r'\1"\2"', r.text)
data = json.loads(s)

相关问题 更多 >

    热门问题