如何在没有eval的情况下将Python字符串转换为字典



我有一个像这样的字符串

"{""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'}

最新更新