第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

當(dāng)某些值包含分隔符作為值的一部分時(shí),如何將 "key=value, key=value, ..."

當(dāng)某些值包含分隔符作為值的一部分時(shí),如何將 "key=value, key=value, ..."

一只萌萌小番薯 2022-06-02 11:25:38
我有一個(gè)格式的數(shù)據(jù)集,key1=value1, key2=value2, key3=value3...其中每個(gè)鍵值對由", ".但是,某些值是包含", "作為值的一部分的長字符串。如何正確瀏覽這些數(shù)據(jù)并將其轉(zhuǎn)換為 csv?我試過使用 a csv.reader,但它不起作用。 data = row.lstrip('(').rstrip(')\n')                                reader = csv.reader(StringIO(data))                                 for row2 in reader:                                                     my_dict = {}                                                        for d in row2:                                                          my_dict[d.split('=')[0].lstrip()] = d.split('=', 1)[1]     
查看完整描述

2 回答

?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以re.findall使用itertools.groupby:


import re, itertools as it

def get_vals(d):

   r = [(a, list(b)) for a, b in it.groupby(re.findall('\w+\=|[^\s,]+', d), key=lambda x:x[-1] == '=')]

   return {r[i][-1][0][:-1]:', '.join(r[i+1][-1]) for i in range(0, len(r), 2)}


tests = ['key1=value1, key2=value2, key3=value3', 'key1=va, lue1, key2=valu, e2, test, key3=value3']

print(list(map(get_vals, tests)))

輸出:


[{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}, 

{'key1': 'va, lue1', 'key2': 'valu, e2, test', 'key3': 'value3'}]


查看完整回答
反對 回復(fù) 2022-06-02
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

使用@Ajax1234 的示例,re.split()并向前看:


import re

str="key1=value1, key2=value2, key3=value3, key1=va, lue1, key2=valu, e2, test, key3=value3"

re.split(", (?=[^ ]+=)",str)

['key1=value1', 'key2=value2', 'key3=value3', 'key1=va, lue1', 'key2=valu, e2, test', 'key3=value3']



查看完整回答
反對 回復(fù) 2022-06-02
  • 2 回答
  • 0 關(guān)注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號