[英]convert string representation of a dict inside json dict value to dict
大家好,如果標題措辭不佳,則感到抱歉。 我在解決如何解決遇到的這個問題時遇到了麻煩。 我本來希望只將dict作為此鍵的值傳遞給json obj,但可悲的是,我必須將其作為字符串傳遞。 所以,我有一個看起來像這樣的json dict對象
data = {"test": "Fuzz", "options": "'{'size':'Regular','connection':'unconnected'}'"}
。 顯然,我希望第二個dict值不是字典的字符串表示形式,而是字典。 是在這里只刪除data [options]的倒數第二個和倒數第二個單引號的最佳方法,還是有更好的選擇?
抱歉給您帶來任何混亂。 這是我執行后json對象的外觀
json.dump(data, <filename>)
選項的值可以視為另一個變量x,它等效於'{'size':'Regular','connection':'unconnected'}'
我可以做x [1:-1],但是我不確定這是否是最pythonic的做事方式。
import ast
bad_string_dict = "'{'size':'Regular','connection':'unconnected'}'"
good_string_dict = bad_string_dict.strip("'")
good_dict = ast.literal_eval(good_string_dict)
print(good_dict)
您將不得不刪除引號,而沒有其他方法
鑒於OP的評論,我建議以下幾點:
json
模塊(或您選擇的格式)加載數據 數據應如下所示:
raw_data = {"test": "Fuzz", "options": "{\"size\": \"Regular\", \"connection\": \"unconnected\"}"}
並且代碼應如下所示:
raw_options = raw_data['options']
options = json.loads(raw_options)
data = {**raw_data, 'options': options}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.