Python 将字段中带有逗号的.csv文件转换为JSON/TXT

Python 将字段中带有逗号的.csv文件转换为JSON/TXT,python,json,pandas,csv,comma,Python,Json,Pandas,Csv,Comma,我有一个以逗号分隔的.csv文件,其中包含数据,该文件的字段中包含逗号(文本、小数等)。 数据的形状实际上是数据帧,所以稍后我将使用熊猫。 如何使用pandas读取此类文件,或者将其转换为制表符分隔的.txt文件或JSON文件 这个文件有3.5MB大,大约700行。下面是标题和两行数据的示例。在这个文件中,并没有空行——我在这里做了它们,只是为了让它更可读。 由于数据是通过网络收集的,我不得不删除两个变量(响应和请求url) 技术支持、响应日期、响应时间 "Klikni za povečavo

我有一个以逗号分隔的.csv文件,其中包含数据,该文件的字段中包含逗号(文本、小数等)。 数据的形状实际上是数据帧,所以稍后我将使用熊猫。 如何使用pandas读取此类文件,或者将其转换为制表符分隔的.txt文件或JSON文件

这个文件有3.5MB大,大约700行。下面是标题和两行数据的示例。在这个文件中,并没有空行——我在这里做了它们,只是为了让它更可读。 由于数据是通过网络收集的,我不得不删除两个变量(响应和请求url)

技术支持、响应日期、响应时间

"Klikni za povečavo Dodaj诉primerjavo Dodatne slike:英特尔奔腾双核G4560“机箱”Redna cena:67,63欧元Spletna cena:62,62欧元普里赫拉内克:5,01欧元 Garancija:36 mesecev EAN:5032037095693 Tehnični podatki:Tip procesorja:Pentium®双核JEDRO:Kaby LakeFrekvenca procesorja:3500 MHzPodnožje工艺流程:插槽1151工艺流程:0.014µmpredpomninik:3072 kBFrekvenca FSB/HT:Tip jedra:双核OPI:Dvojederni工艺流程英特尔奔腾G4560 je del serije工艺流程:日本科迪姆伊梅诺姆卡比湖narejen v 14纳米级proizvodnem程序。Deluje na frekvenci 3.5 GHz。Na voljo je 3 MB缓存predpomnilnika。Za delovanje porablja do 54 W(TDP)能源公司。Za delovanje potrebujete osnovno ploŧčo s podnožjem LGA1151。Vgrajena je nova generacija intelave integrarirane grafike Intel®HD Graphics 610,ki deluje na frekvenci 350 MHz/1,15 GHz。Podpira DirectX 12,OpenGL 4.4 ter ločljivosti do 4096x2304@60Hz preko HDMI 1.4中的4096x2304@24Hz preko显示端口。Podpira do 3 zaslone naenkrat.Dodatne lastnosti procesorja Pentium®双核G4560:*什特维洛niti(线程):4*GPU Frekvenca:do 1050 MHz*Tip GPU:HD图形610(podpora DirectX 12)*TDP:54 W*podpora DDR3L:1333/1600 MHz@1.35V*podpora DDR4:2133/2400 MHz*Inštrukcije:MMX、AES-NI、CLMUL、FMA3、SSE、SSE2、SSE2、SSE3、SSE4、SSE4.1、,SSE4.2、AVX、AVX2、TXT、TSX、SGX、VT-x、2017年5月26日、10:01:50

"Klikni za povečavo Dodaj诉primerjavo Dodatne slike:英特尔核心™ i5 7400“盒子”Redna cena:213,06欧元Spletna cena:197,29欧元普里赫拉内克:15,77欧元
import csv
from StringIO import StringIO
import pandas as pd

data = []

with open('input.csv', 'r') as f_input:
    for line_number, raw_row in enumerate(f_input, start=1):
        cols = raw_row.rsplit(',', 4)
        cols[0] = '"{}"'.format(cols[0].strip('"').replace('"', '""'))
        row = next(csv.reader(StringIO(','.join(cols))))
        data.append(row)

df = pd.DataFrame(data[1:], columns=data[0])
df['DATE_TIME'] = pd.to_datetime(df.RESPONSE_DATE + " " + df.RESPONSE_TIME, format="%m.%d.%Y %H:%M:%S")
df.drop(['RESPONSE_DATE', 'RESPONSE_TIME'], axis=1, inplace=True)

print df