如何逗号分隔的csv但不是所有单元格
How to comma seprate csv but not all cells
这个问题不是同一个问题的重复,但符合某些特征。我的问题是我也想将几个单元格转换为列表,但在那个问题中没有提到
我正在读取一个数据结构如下所示的 csv 文件
数据为文本:
11916,testBuild,Test Building,Udaipur sector-5 Hiran Magri,181,753180 794950,"1,2",UC,2018-08-22,"2BHK, 3BHK"
这是我的没有 header
的 csv 列
我正在尝试阅读它并将其转换为逗号分隔列表,以便我可以单独访问每个元素
下面是我的代码:
def Residential():
global url, parse_url
filename = "Residential.csv"
f = open(filename, "r")
for line in f.readlines():
data = line.split(",")
builderid = data[0]
print(builderid)
buildername = data[1]
print(buildername)
buildingname = data[2]
print(buildername)
address = data[3]
city = data[4]
locality = data[5]
building_id = data[6]
apartment = data[7].replace("\"","")
print(type(apartment))
status = data[8].replace("\"","")
print(status)
cdate = data[9]
bhk = data[10]
rnumber = data[11]
rurl = data[12]
print(data)
Residential()
元素 7 和 10 是 属性 类型,bhk 也被 ","
分隔,我怎么能不用逗号分隔它们并将元素 7 读入列表和元素 10 中呢?
喜欢这个我想看
['11916', 'testBuild', 'Test Building', 'Udaipur sector-5 Hiran Magri',
'181', '753180', '794950', **[1,2]**, 'UC', '2018-08-22', **"2BHK, 3BHK"**,
'', '\n']
这是我收到的结果:
['11916', 'testBuild', 'Test Building', 'Udaipur sector-5 Hiran
Magri', '181', '753180', '794950', '"1', '2"', 'UC', '2018-08-22',
'"2BHK', ' 3BHK"', '', '\n']
您只需要使用 json
模块。
import json
s = '1,"2,3","123,234"' # one line of your csv for example
s = '[{}]'.format(s)
data = json.loads(s) # data is a list now
print data
Python 中有一个 CSV 解析器,可以正确处理包含逗号的引用字符串:
(假设 filename.csv 仅包含一行,正如您在问题中发布的那样)
import csv
with open('filename.csv') as f:
reader = csv.reader(f)
for row in reader:
row[6] = list(map(int, row[6].split(",")))
print(row)
给出结果
['11916', 'testBuild', 'Test Building', 'Udaipur sector-5 Hiran Magri', '181', '753180 794950', [1,2], 'UC', '2018-08-22', '2BHK, 3BHK']
这个问题不是同一个问题的重复,但符合某些特征。我的问题是我也想将几个单元格转换为列表,但在那个问题中没有提到
我正在读取一个数据结构如下所示的 csv 文件
数据为文本:
11916,testBuild,Test Building,Udaipur sector-5 Hiran Magri,181,753180 794950,"1,2",UC,2018-08-22,"2BHK, 3BHK"
这是我的没有 header
的 csv 列我正在尝试阅读它并将其转换为逗号分隔列表,以便我可以单独访问每个元素
下面是我的代码:
def Residential():
global url, parse_url
filename = "Residential.csv"
f = open(filename, "r")
for line in f.readlines():
data = line.split(",")
builderid = data[0]
print(builderid)
buildername = data[1]
print(buildername)
buildingname = data[2]
print(buildername)
address = data[3]
city = data[4]
locality = data[5]
building_id = data[6]
apartment = data[7].replace("\"","")
print(type(apartment))
status = data[8].replace("\"","")
print(status)
cdate = data[9]
bhk = data[10]
rnumber = data[11]
rurl = data[12]
print(data)
Residential()
元素 7 和 10 是 属性 类型,bhk 也被 ","
分隔,我怎么能不用逗号分隔它们并将元素 7 读入列表和元素 10 中呢?
喜欢这个我想看
['11916', 'testBuild', 'Test Building', 'Udaipur sector-5 Hiran Magri',
'181', '753180', '794950', **[1,2]**, 'UC', '2018-08-22', **"2BHK, 3BHK"**,
'', '\n']
这是我收到的结果:
['11916', 'testBuild', 'Test Building', 'Udaipur sector-5 Hiran
Magri', '181', '753180', '794950', '"1', '2"', 'UC', '2018-08-22',
'"2BHK', ' 3BHK"', '', '\n']
您只需要使用 json
模块。
import json
s = '1,"2,3","123,234"' # one line of your csv for example
s = '[{}]'.format(s)
data = json.loads(s) # data is a list now
print data
Python 中有一个 CSV 解析器,可以正确处理包含逗号的引用字符串:
(假设 filename.csv 仅包含一行,正如您在问题中发布的那样)
import csv
with open('filename.csv') as f:
reader = csv.reader(f)
for row in reader:
row[6] = list(map(int, row[6].split(",")))
print(row)
给出结果
['11916', 'testBuild', 'Test Building', 'Udaipur sector-5 Hiran Magri', '181', '753180 794950', [1,2], 'UC', '2018-08-22', '2BHK, 3BHK']