簡體   English   中英

如何在不引號的情況下轉儲類似json的字符串?

[英]How to dump json-like string without quoting keys?

代替這個(來自json.dumps ):

[
  {
    "created": 581937573,
    "text": "asdf"
  },
  {
    "created": 581937699,
    "text": "asdf"
  }
]

我想獲得此[non-JSON]輸出:

[
  {
    created: 581937573,
    text: "asdf"
  },
  {
    created: 581937699,
    text: "asdf"
  }
]

如果json.dumps可以更改鍵的引號字符,則可以將其設置為占位符,然后將其剝離。 不幸的是,它似乎沒有這個選擇……還有其他聰明的主意嗎?

(從這種格式加載不是必需的,但如果也有解決方案,這將很有趣)

在某些假設下, re.sub提供了快速解決方案:

import re

data = [...]
json_data = json.dumps(data)

with open('file.txt', 'w') as f:
    f.write(re.sub(r'"(.*?)"(?=:)', r'\1', json_data))

file.txt

[
  {
    created: 581937573,
    text: "asdf"
  },
  {
    created: 581937699,
    text: "asdf"
  }
]

這些假設是

  1. 您的數據足夠小,因此re.sub可以在合理的時間內運行
  2. 您的數據不包含字符串值,這些字符串值本身包含的內容可能與我在此使用的模式匹配。

該模式有效地查找了所有字典鍵並去除了引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM