簡體   English   中英

如何在沒有 eval 的情況下將 Python 字符串轉換為 dict

[英]How to convert a Python String to a dict without eval

我有一個這樣的字符串

"{""netPrice"":251.6,""totalPrice"":299.4,""calculatedTaxes"":[{""tax"":47.8,""taxRate"":19.0,""price"":251.6,""extensions"":[]}],""taxRules"":[{""taxRate"":19.0,""percentage"":100.0,""extensions"":[]}],""positionPrice"":232.0,""rawTotal"":299.4,""taxStatus"":""net""}"

我需要它是像{'netPrice': 251.6, 'totalPrice':299.4, and so on}的字典,但因為它有雙引號 eval 和 json 不適用於此。 我從 csv 文件中導入該字符串

with open('order.csv', 'r') as csv_datei:
    for row in csv_datei:

所以據我所知,我無法以更清晰的格式獲得它。 (字符串是行)

如何將其轉換為字典?

正如評論中所建議的,這似乎是一個放在 CSV 中的 JSON。 標准 CSV 用雙引號 ( "..." ) 將字符串值括起來,並使用雙雙引號 ( "" ) 來表示字符串中的雙引號字符 ( " )。

由於它是雙重編碼的,因此將其傳遞給兩個相關的解析器:

import csv
import json

with open('order.csv', 'r') as csv_datei:
    for row in csv.reader(csv_datei):
        data = json.loads(row[0])
        print(data)

# => {'netPrice': 251.6, 'totalPrice': 299.4, 'calculatedTaxes': [{'tax': 47.8, 'taxRate': 19.0, 'price': 251.6, 'extensions': []}], 'taxRules': [{'taxRate': 19.0, 'percentage': 100.0, 'extensions': []}], 'positionPrice': 232.0, 'rawTotal': 299.4, 'taxStatus': 'net'}

暫無
暫無

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

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