【问题标题】:Python Json dumps remove ""Python Json 转储删除“”
【发布时间】:2018-11-15 10:26:21
【问题描述】:

我正在尝试使用带有 python 3.X 的 Json.dump 在文件中写入 json

这里是代码:

#write in a file
with open('./mydata/dataleaf.json','w') as outfile:
    json.dump(leafdata["data"],outfile)

在我的文件中,输出是:

["{\"Extracts\":[],\"NextPageUrl\":\"\",\"PageCount\":0}", "{\"Extracts\":[],\"NextPageUrl\":\"\",\"PageCount\":0}"]

我想得到的是:

['{"Extracts":[],"NextPageUrl":"","PageCount":0}',
 '{"Extracts":[],"NextPageUrl":"","PageCount":0}']

我尝试了 Eval() 但仍然无法正常工作,因为我正在尝试将字符串列表保存在文件中(不是单个字符串)(python json dumps) .提前致谢

【问题讨论】:

  • python json dumps的可能重复
  • 您正在读取一个字符串并将该字符串作为 JSON 列表的唯一成员转储。如果字符串是 JSON,如果你想处理它,你需要将它解析回 Python,如果不是,只需再次打印出来,因为它已经是 JSON 格式。
  • 在伪代码中,你基本上是在 print(json.dumps(json.dumps(data)) 做你想要的 print(json.dumps(data)) 或者可能只是 print(data)
  • 当我尝试使用 open('./mydata/dataleaf.json','w') as outfile: outfile.write(leafdata["data"]) 我有这个错误: TypeError: write() 参数必须是 str,而不是 list
  • 看起来leafdata["data"][0] 将是这里的门票,但显然我们只能推测这是否会在更一般的情况下有效,而没有更多关于这些数据来自何处的信息。

标签: python python-3.x


【解决方案1】:

leafdata["data"] 似乎是一个仅包含一个 json 序列化数据的列表。试试这个:

with open('./mydata/dataleaf.json','w') as outfile:
    outfile.write(leafdata["data"][0])

直接将内容写入您的文件,或者如果您需要在写入之前修改内容:

with open('./mydata/dataleaf.json','w') as outfile:
    python_data = json.loads(leafdata["data"][0])
    # [...] do something with "python_data"
    json.dump(python_data, outfile)

【讨论】:

    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 2013-06-25
    • 2014-08-19
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多