【发布时间】:2020-01-13 13:50:10
【问题描述】:
我发现此代码是为了将 CSV 文件转换为 JSON。但在这种情况下,我需要一个 credit 字段作为integer,因此不应将它包含在引号"" 中。
我使用了这段代码而不是简单的转换器,因为我使用的是嵌套循环:
**Import**
import csv
import json
from itertools import groupby
**Accessing csv**
with open('testing.csv', 'r') as csv_ledger:
r = csv.DictReader(csv_ledger)
data = [dict(d) for d in r]
groups = []
for k, g in groupby(data, lambda r: (r['ref_num'], r['date'])):
groups.append({
"date": k[1],
"ref_num": k[0],
"items": [{k: v for k, v in d.items() if k not in ['ref_num', 'date']} for d in list(g)]
})
print(json.dumps(groups[:10], indent=4))
这是输出
"date": "2018-12-28",
"ref_num": "PV18/12/066",
"items": [
{
"description": "Jacky",
"debit": "",
"credit": "59.80",
"coa_code": "310-1000",
"coa_name": "Samboi"
},
预期输出 - 查看信用属性
"date": "2018-12-28",
"ref_num": "PV18/12/066",
"items": [
{
"description": "Jacky",
"debit": "",
"credit": 59.80,
"coa_code": "310-1000",
"coa_name": "Samboi"
},
您能否告诉我如何在从 CSV 转换为 JSON 结构时将 integer string 转换为 integer?
【问题讨论】:
-
您有一个要从字符串转换为数字的已识别值。你被困在哪里了?那部分是直接浏览器搜索,或任何字符串/数字教程。
-
我搜索过,但我无法做到。我是编程新手
-
“无法做到”不是 SO(堆栈溢出)问题规范。您需要找到字符串、识别其类型并进行转换(可能使用
float(string))。其中的每一个都包含在文档和教程中。 -
执行 K[2] 来定位字符串不起作用
-
同样,“不工作”不是 SO 规范。用具体问题更新您的帖子;向我们提供预期的Minimal, complete, verifiable example,我们可以提供帮助——我很乐意撤销我的关闭和否决票。
标签: javascript python json csv integer