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

时间:2019-01-24 05:37:38

标签: python regex

我想通过 Name From 0 School 12 1 Organisation 18 2 Teacher 11 2 Teacher 10 3 Guest 12 3 Guest 4 3 Guest 8 file提取数据到字典中。示例:

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

有什么建议吗?

代码

json.loads

1 个答案:

答案 0 :(得分:4)

您提供的文件似乎是有效的Python dict,所以我建议使用literal_eval的另一种方法。

from ast import literal_eval

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

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


如果您仍然喜欢json,则可以尝试使用正则表达式将数字替换为字符串。

import re

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