【问题标题】:Expecting property name enclosed in double quotes期望用双引号括起来的属性名称
【发布时间】:2020-03-04 12:46:05
【问题描述】:

如果我的 json 文件很大,它包含许多字典和字典内的列表,并且用双引号括起来意味着我该如何处理。什么是反序列化?如何使用反序列化?

【问题讨论】:

  • 使用json模块
  • 您可以先将文件读取为字符串。然后你可以使用字符串切片删除'"'。然后你可以使用 json.load() 读取 json 文件
  • “用双引号括起来”是什么意思?
  • 你能澄清你的问题吗? “用双引号括起来”是什么意思 - 当printing 或repr 时会发生这种情况吗? JSON en/decoders 是 Python 标准库的一部分,你试过用吗?
  • 听起来你可能有一个 JSON 字符串,它本身是用 another JSON 字符串编码的——但没有格式示例,所以我们可以看到反斜杠的位置和方式使用过,否则细节是什么,我们无法确定我们给出的任何答案都是正确的。请务必提供minimal reproducible example 以允许测试它们所基于的答案和假设。

标签: python json


【解决方案1】:

使用 json 模块。

如果您在一个文件中包含 json,那么您可以使用:

with open("json_data.json", "r") as data:
  print(json.load(data))

with open("json_data.json", "r") as data:
  print(json.loads(data.read()))

如果你在任何 var 中有 json,你可以使用:

jsonData = '{}'
jsonVal = json.loads(jsonData)

【讨论】:

  • 这个答案已经在知识库中给出了很多遍;如果它完全完整且适用,那么问题本身就是重复的,应该关闭而不是回答。请参阅stackoverflow.com/help/how-to-answer 的“回答好问题”部分
  • (我怀疑他们的真实格式更复杂,因此这个答案并不完全完整和适用——也许他们的 JSON 数据本身编码为 JSON,或者作为带有 JSON 的 Python 字符串的 repr(),这将解释对双引号的反对意见;我们也有该问题的重复项,但需要来自 OP 的详细信息来选择更窄/更具体的实例。
【解决方案2】:

python中有一个名为json的包,可以用来序列化和反序列化字典。 如果您想使用以下方式进行序列化:

with open("huge_json_file.json", "r") as data
    json_str = json.dumps(data)

如果您想使用以下方法进行反序列化:

with open("huge_json_file.json", "r") as data    
    json_dict = json.loads(data)

【讨论】:

  • 这个答案已经在知识库中给出了很多遍;如果它完全完整且适用,那么问题本身就是重复的,应该关闭而不是回答。请参阅stackoverflow.com/help/how-to-answer 的“回答好问题”部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-22
  • 1970-01-01
  • 2019-01-04
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
相关资源
最近更新 更多