import pandas as pd
def csv_to_xlsx_pd(csv_pt, encoding='utf-8'):
csv = pd.read_csv(csv_pt, encoding=encoding)
csv.to_excel(csv_pt.split('.')[0]+'.xlsx', sheet_name='data')
# TODO 批量處理目錄下的文件 os.listdir
if __name__ == '__main__':
csv_to_xlsx_pd()這兩個詞不是在一個層面上的吧
socket 一般說的是網(wǎng)絡(luò)編程的套接字,這是阻塞的。
channel 是一種模式,如果你指的是評論里說的 SocketChannel,那么就如那篇文章所說。
你說的對方給你一個session,需要自己記錄一下session,然后每次提交別的api請求的時候需要攜帶
function doPost($url, $data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$data = curl_exec($ch);
curl_close($ch);
return json_decode($data, true);
}
$url = 'http://xxx.com/api/login';
$data = [
'email' => 'abc@abc.com',
'password' => '123456'
];
$res = doPost($url, $data);
// 判斷$res結(jié)果 這一部分需要看具體api文檔
if($res['errcode'] == 0){
// 記錄session
$session = $res['data']['session'];
}
// 下次請求別的接口的時候攜帶一些參數(shù),具體看接口文檔,有的可能要求是放到header頭信息中,有的可能要求是直接作為一個參數(shù)傳遞這個是 color scheme 的設(shè)置,需要自己在設(shè)置里找一找,換換不同的
JWT 是不需要存服務(wù)端的,我也很奇怪為什么有人會把token存服務(wù)端。而且即使存服務(wù)端,也應(yīng)該當(dāng)成密碼一樣加密存儲。不然數(shù)據(jù)庫被 hack 里,token 就都拿到了,不用密碼就可以冒充用戶發(fā)請求了。
最后,是通過增加了一個HandlerInterceptor,這個方法可行,但是處理異常的地方就變成了兩處,另一個是controller層異常的統(tǒng)一處理,總覺得不是太好的方案。
@Component
public class PreControllerExceptionIntercep implements HandlerInterceptor {
private static final Logger log = LoggerFactory.getLogger(PreControllerExceptionIntercep.class);
@Override
public void afterCompletion(HttpServletRequest request , HttpServletResponse response,Object handler,Exception ex) throws Exception{
if(ex instanceof UnauthenticatedException){
log.info("the access isn't valid");
PackVo packVo = new PackVo();
packVo.setSuccess(false);
packVo.addMsg(BizExceptionCode.NO_PERMISSION_EXCEPTION,"");
String jsonPack = JSON.toJSONString(packVo);
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
PrintWriter out = response.getWriter();
out.print(jsonPack);
out.flush();
out.close();
}
}
}
#include<stdlib.h>
#include<string.h>
int main(void){
long mem = 1000L*1000*1000*64;//64G, 我的機器有16G內(nèi)存
char* f = malloc(mem);
memset(f,0xff, mem-1); //注釋掉這一行你會成功的
free(f);
}
gcc melloctest.c
./a.out
運行時你會看到段錯誤 (核心已轉(zhuǎn)儲)(我就不提Segmentfault,呵呵!)
public class Test{
static final int mem = 1000*1000*64;//64M //java 不能用long聲明數(shù)組
public static void main(String[] args){
int a[][] = new int[1000][];
for(int i=0;i<1000; i++)
a[i] = new int[mem];
a[999][mem-1]=10086;
System.out.println(a[999][mem-1]);
}
}
運行時你會看到
java Test
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at Test.main(Test.java:10)
## 結(jié)論
c: 聲明沒問題,分配沒問題, 使用了就不行
java: 聲明沒問題,分配都不行,更別說使用了
查看 conf/context.xml 文件是否存在下面這段:
<Context useHttpOnly="true">
...
</Context>
只要改為下面即可
<Context>
...
</Context>
或者在 web.xml 里有沒有這樣的配置:
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>發(fā)請求自動帶上的
mdn cookie
防止XSRF最好的方式是使用CSRF-token。
cookie一般用于保存信息,你向同一個服務(wù)器發(fā)請求時會帶上瀏覽器保存的對于那個服務(wù)器的cookie,而不管你從哪個網(wǎng)站發(fā)請求。
所以后端需要設(shè)置Access-Control-Allow-Origin,瀏覽器會看你的訪問網(wǎng)站是否是被允許的域,如果允許就發(fā)請求并能獲得數(shù)據(jù),如果不受允許那么能發(fā)請求但是js腳本無法獲取返回的數(shù)據(jù)(你仍然能在NetWork中看到返回)。
可以看下這篇文章
ngram分詞是個好東西
可以看看。原生自帶的
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 0,
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 20
}
},
"analyzer": {
"autocomplete": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"autocomplete_filter"
]
}
}
}
}
}
如上設(shè)置就OK
當(dāng)然不一樣。
call 和 apply 是從函數(shù)出發(fā)的操作, with 是從上下文對象出發(fā)的操作。
而 with 這種上下文出發(fā)的操作,在功能上來說是完全多余的,因為簡單的 obj.xxx = func 就可以達到同樣的效果。
function f(){
console.log(this.a);
}
var obj = {a: 123};
with(obj){ f() }
f.apply(obj);
f.call(obj);
var obj = {a: 1111, f: f};
with(obj){ f() }
呃,后行斷言是新特性,需要瀏覽器支持才可以,按規(guī)范是ES2018才引入的,所以babel編譯時,目標(biāo)es版本需要正確。
接自阮一峰es6一書
JavaScript 語言的正則表達式,只支持先行斷言(lookahead)和先行否定斷言(negative lookahead),不支持后行斷言(lookbehind)和后行否定斷言(negative lookbehind)。ES2018 引入后行斷言,V8 引擎 4.9 版(Chrome 62)已經(jīng)支持。
因為賦值是賦給transform里面的那個map1 你打印的是main里的map1
這個兩個除了名字一樣 沒有什么關(guān)系
一共四個變量
main里的 map1 , map2
transform里的 map1 , map2
傳參之后 main的map1 和 transform的map1 指向同一個Map
map1 = map2 之后
transform 里的map1 指向 map2 的Map
main里的map1 還是指向原來的地址
我這邊正常的哇!可以直接用list得到啊
剛試了下,在html里面這么寫也是ok的.
$("#bbb").click(()=>{
let json = [
[null,"2016-12-31","2016-12-31","2016-12-31","2016-12-31","2016-12-31","2016-12-31"],
["","營業(yè)收入","營業(yè)成本","營業(yè)收入","營業(yè)成本","營業(yè)收入","營業(yè)成本"],
["華北","10,395.82","4.73","8,041.72","3.65","7,202.08","7,202.08"],
["華東","78,942.98","35.93","76,100.98","34.53","70,450.89","70,450.89"],
["華南","16,343.33","7.44","21,176.08","9.61","22,709.62","22,709.62"],
["華中","41,575.34","18.92","37,104.71","16.84","39,294.05","39,294.05"],
["西北","4,581.72","2.09","5,273.01","2.39","4,261.26","4,261.26"],
["西南","64,956.49","29.57","69,146.78","31.38","72,990.61","72,990.61"],
["境外","1,126.66","0.51","1,278.24","0.58","1,284.34","1,284.34"],
["合計","219,704.55","100.00","220,385.17","100","221,530.55","221,530.55"]
]
$.ajax({
type : "POST",
url : 'http://localhost:10000/app/compose/bbbID',
data : JSON.stringify(json),
contentType : "application/json",
dataType : "json",
success:function(msg) {
console.log(msg)
}
});
})
df = df.replace(regex={'^="': '', '"$': ''})
跟你的js一致的
df.replace(r'="(.*)"', '\g<1>', regex=True)大寫懵逼
你是豆瓣的程序員么?
在CaptureActivity類中找到以下方法:
/**
* Handler scan result
*
* @param result
* @param barcode
*/
public void handleDecode(Result result, Bitmap barcode)
{
inactivityTimer.onActivity();
playBeepSoundAndVibrate();
String resultString = result.getText();
doResult(resultString);
}
/**
* 增加的部分:對掃描返回的結(jié)果進行處理
*/
private void doResult(String result)
{
if (result.equals(""))
{
ToastUtil.showToastByThread(getApplicationContext(),
"二維碼掃描失敗,請手動輸入!");
} else
{
mHandler.postDelayed(runnable, 1000);
}
}
/**
* 增加的部分:實現(xiàn)多次重復(fù)掃描,否則本界面打開一次,只能聚焦一次,掃描一次。增加這一部分之后就能連續(xù)聚焦,連續(xù)掃描
*/
Handler mHandler = new Handler();
Runnable runnable = new Runnable()
{
@Override
public void run()
{
if (handler != null)
{
try
{
mHandler.postDelayed(runnable, 1000);
handler.restartPreviewAndDecode(); // 實現(xiàn)多次掃描
} catch (Exception e)
{
e.printStackTrace();
}
}
}
};北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。