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

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

將具有基于固定位置模式的原始字符串?dāng)?shù)據(jù)轉(zhuǎn)換為基于對(duì)象的結(jié)構(gòu),如 JSON

將具有基于固定位置模式的原始字符串?dāng)?shù)據(jù)轉(zhuǎn)換為基于對(duì)象的結(jié)構(gòu),如 JSON

素胚勾勒不出你 2023-05-19 17:07:04
我的用例如下,輸入格式——總長(zhǎng)度固定的字符串,每組固定位置代表某個(gè)值。例如。設(shè)輸入為"ABCDE12345"并考慮位置 1 到 3("ABC")將代表字段 1 的值,位置 4 到 7("DE12")將代表字段 2 的值,位置 8 到 10("345")將代表字段 3 的值輸出格式 - 基于對(duì)象的結(jié)構(gòu),如 JSON{"field1" : "ABC","field2" : "DE12","field3" : "345"}我的優(yōu)先順序要求是從輸入格式轉(zhuǎn)換為 JSON 等輸出格式轉(zhuǎn)換速度應(yīng)盡可能快??梢韵鄳?yīng)地選擇編程語言。最好是js或者python。也歡迎使用其他語言作為解決方案。(可選)我們?nèi)绾伪M快擴(kuò)展此解決方案以實(shí)現(xiàn) 1000 次轉(zhuǎn)換?
查看完整描述

3 回答

?
qq_花開花謝_0

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

  1. 嘗試這個(gè):

string_to_dict = lambda input_str: {"field1":input_str[:3], "field2":input_str[3:7], "field3":input_str[7:]} string_to_dict("ABCDE12345")

{'field1': 'ABC', 'field2': 'DE12', 'field3': '345'}

  1. 速度取決于您的輸入源。如果您有 pandas DataFrame,則可以通過使用“map”函數(shù)將此函數(shù)應(yīng)用于 Series 來最大化速度:

df['stinrg_series'].map(string_to_dict)


查看完整回答
反對(duì) 回復(fù) 2023-05-19
?
UYOU

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

如果您準(zhǔn)備一個(gè)數(shù)據(jù)結(jié)構(gòu)來表示按順序排列的具有名稱和長(zhǎng)度的字段,則可以將其應(yīng)用于字典推導(dǎo)式以將數(shù)據(jù)拆分為單獨(dú)的鍵和值。然后使用json模塊轉(zhuǎn)換字典


from itertools import accumulate

import json


structure = [("field1",3),("field2",2),("field3",5)]      # define names and lengths

positions = [0,*accumulate(size for _,size in structure)] # computed starting positions


data      = "ABCDE12345"

dictdata  = { name:data[pos:pos+size] for (name,size),pos in zip(structure,positions) }

jsondata  = json.dumps(dictdata)


print(jsondata)

# {"field1": "ABC", "field2": "DE", "field3": "12345"}


查看完整回答
反對(duì) 回復(fù) 2023-05-19
?
米琪卡哇伊

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

你可以這樣做:


function strToObj(str, interface) {

  const outObj = {};

  let index = 0;


  Object.entries(interface).forEach(([key, value]) => {

    outObj[key] = str.slice(index, index + value);

    index = value

  });


  return JSON.stringify(outObj);

}


const testStr1 = 'ABCDE12345';

const testInterface1 = {

  key1: 3, // 'key1' will become the object key and 3 indicates the number of characters to use for the value

  key2: 4,

  key3: 3

}


const testStr2 = '+15417543010';

const testInterface2 = {

  intlPrefix: 2,

  localPrefix: 3,

  phonenumber: 7

}


console.log(strToObj(testStr1, testInterface1));

console.log(strToObj(testStr2, testInterface2));

或簡(jiǎn)化版本,如果您不需要?jiǎng)?chuàng)建可重用的功能



查看完整回答
反對(duì) 回復(fù) 2023-05-19
  • 3 回答
  • 0 關(guān)注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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