[英]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.